antologia de admin is trac ion de base de datos

66
 INSTITUTO TECNOLÓGICO SUPERIOR de Acayucan  Asignatura: Administración de Base de Datos Clave de la asignatura: BDM - 0701 Carrera: Ingeniería en Sistemas Computacionales A N T O L O G I A Presenta: L.I. JOSE HERNANDEZ RODRIGUEZ  ACAYUCAN, VER. JUNIO 2008

Upload: 19amy09

Post on 07-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 1/66

 

INSTITUTO TECNOLÓGICO SUPERIOR 

de Acayucan 

 Asignatura: Administración de Base de Datos

Clave de la asignatura: BDM - 0701 

Carrera: Ingeniería en Sistemas

Computacionales

A N T O L O G I A

Presenta:

L.I. JOSE HERNANDEZ RODRIGUEZ

  ACAYUCAN, VER. JUNIO 200

Page 2: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 2/66

II

ADMINISTRACION DE BASE DEDATOS 

L.I. José Hernández Rodríguez

Page 3: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 3/66

III

INDICEOBJETIVO GENERAL V

JUSTIFICACION VI

UNIDAD I CONCEPTOS RELACIONADOS A LA ADMINISTRACIONDE BASE DE DATOS1.1 Definición de la administración de Base Datos 2

1.2 Tipos de usuarios 2

1.3 El administrador de Base de Datos 4

1.3.1 Características del DBA 5

1.3.2 Objetivos del administrador de Base de datos 5

1.3.3 Funciones del administrador de Base de datos 5

UNIDAD II DEFINICION DEL ESQUEMA CONCEPTUAL 

2.1 Diccionario de datos 11

2.2 Estructura de la base de datos 13

2.3 Esquema de integridad 15

2.4 Esquema de seguridad y autorización 24

2.5 Herramientas de apoyo para el diseño del esquema 30

2.6 Implicaciones por la modificación de esquemas 31

2.7 Cálculo del tamaño de la base de datos 32

UNIDAD III DEFINICIÓN DEL ESQUEMA INTERNO

3.1 Estructura de datos 37

3.2 Métodos de acceso 40

3.3 Herramientas para el diseño del esquema interno 42

UNIDAD IV 4. DEFINICIÓN DE LOS ESQUEMAS EXTERNOS

4.1 Estructura de datos (vistas) 44

4.2 Control de acceso 50

4.3 Herramientas del esquema externo 51

Page 4: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 4/66

IV

UNIDAD V PROCESOS PARA EL MANTENIMIENTO DE UNA BASEDE DATOS

5.1 Depuración 54

5.1.1 Medición del desempeño y uso de estadísticas 54

5.2 Reorganización física y lógica 56

5.2.1 Consideraciones para la reorganización física 56

5.2.2 Consideraciones para la reorganización lógica 56

5.3 Respaldos y recuperación 56

5.4 Migración de datos 58

5.4.1 Consideraciones para la migración de datos

59

BIBLIOGRAFIA 60

Page 5: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 5/66

V

OBJETIVO GENERAL

El alumno identificará y desarrollará los niveles deabstracción necesarios para el diseño de la base de datos,utilizando los métodos y técnicas que permitan un adecuadofuncionamiento.

Page 6: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 6/66

VI

JUSTIFICACION

La presente Antología de Administración de Base de Datos, ha sido

diseña para la materia con el mismo nombre, que se imparte en el SextoSemestre de la Carrera de Ingeniería en Sistemas Computacionales comouna materia más de la Especialidad en Base de Datos.

Es necesario para que el alumno tenga una guía durante todo elsemestre, aportando conocimiento en cada unos de los temas de las cincounidades que la componen, de esta manera el alumno puede analizar lospuntos de vistas libros, referencias bibliográficas, etc. Para el docente seráde apoyo académico, para reforzar lo explicado en clases.

Page 7: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 7/66

 

UNIDAD 1

CONCEPTOSRELACIONADOS A LAADMINISTRACION DE

BASE DE DATOS

Objetivo:El alumno identificará las actividades y

objetivo del DBA.

Page 8: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 8/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

2

Una base de datos es una colección de información, accedida y administradapor un DBMS.

1.1 Definición de la administración de Base Datos

La administración de una base de datos consistirá en asegurar que la informaciónprecisa y consistente esté disponible para los usuarios y para las aplicaciones enel momento y en la forma requerida.

Función que puede ser desempeñada por una persona o un grupo de personas. El

Administrador de la Base de Datos (DBA- Data Base Administrator) es el responsable

del Diseño de la Arquitectura, Control y Administración de la Base de Datos.

1.2 Tipos de usuarios 

Hay 4 diferentes de usuarios de un sistema de BD, diferenciados por laforma en que ellos esperan interactuar con el sistema. Se han diseñadodiferentes tipos de interfaces de usuarios para diferentes tipos de usuarios.

 USUARIOS NORMALES

Son usuarios no sofisticados que interactúan con el sistema mediante lainvocación de algunos de los programas de aplicación permanentes que se haescrito. Su interfaz es una interfaz de formularios, donde los usuarios puedenrellenar los campos apropiados al formulario. También pueden simplementeleer informes generados de las BD.

 PROGRAMADORES DE APLICACIONES.

Son profesionales informáticos que escriben programas de aplicación. Losprogramadores de aplicaciones pueden elegir entre muchas herramientas para

desarrollar interfaces de usuario. Las herramientas de desarrollo rápido deaplicaciones (DRA) son herramientas que permiten al programador deaplicaciones construir formularios e informes sin escribir un programa. Haytambién tipos especiales de lenguajes de programación que combinanestructuras de control imperativo (por ejemplo, para bucles for, bucles while einstrucciones if-then-else) con instrucciones del lenguaje de manipulación de

Page 9: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 9/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

3

datos. Estos lenguajes, llamados a veces lenguajes de cuarta generación, amenudo incluyen características especiales para facilitar la generación deformularios y la presentación de datos en pantalla. La mayoría de los sistemas debases de datos comerciales incluyen un lenguaje de cuarta generación.

 LOS USUARIOS SOFISTICADOS

Interactúan con el sistema sin programas escritos. En su lugar, ellosforman sus consultas en un lenguaje de consulta de bases de datos. Cada una deestas consultas se envía si procesador de consultas, cuya función es transformarinstrucciones LMD a instrucciones que el gestor de almacenamiento entienda.Los analistas que envían las consultas para explorar los datos en la base de datosentran en esta categoría. Las herramientas de procesamiento analítico en línea(OLAP, OnLine Analytical Processing) simplifican la labor de los analistaspermitiéndoles ver resúmenes de datos de formas diferentes. Por ejemplo, un

analista puede ver las ventas totales por región (por ejemplo, norte, sur, este yoeste), o por producto, o por una combinación de la región y del producto (esdecir, las ventas totales de cada producto en cada región).

Las herramientas también permiten al analista seleccionar regionesespecíficas, examinar los datos con más detalle (por ejemplo, ventas por ciudaddentro de una región) o examinar los datos con menos detalle (por ejemplo,agrupando productos por categoría).

Otra clase de herramientas para los analistas son las herramientas derecopilación de datos, que les ayudan a encontrar ciertas clases de patrones dedatos.

 USUARIOS ESPECIALIZADOS.

Son usuarios sofisticados que escriben aplicaciones de bases de datosespecializadas que no son adecuadas en el marco de procesamiento de datostradicional. Entre estas aplicaciones están los sistemas de diseño asistido porcomputador, sistemas de bases de conocimientos y sistemas expertos, sistemasque almacenan los datos con tipos de datos complejos (por ejemplo, datosgráficos y datos de audio) y sistemas de modelado del entorno.

Page 10: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 10/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

4

1.3 El administrador de Base de Datos

El administrador de base de datos (DBA) es la persona responsable de los

aspectos ambientales de una base de datos

El administrador de datos y el administrador de la base de datos son laspersonas o grupos de personas encargadas de gestionar y controlar todas lasactividades que tienen que ver con los datos de la empresa y con la base dedatos, respectivamente.

El administrador de datos es quien entiende los datos y las necesidades dela empresa con respecto a dichos datos. Su trabajo es decidir qué datos debenalmacenarse en la base de datos y establecer políticas para mantener y gestionarlos datos una vez hayan sido almacenados. Un ejemplo de tal política sería una

que estableciera quién puede realizar qué operaciones sobre qué datos y en quécircunstancias.

La persona (o personas) que se encarga de implementar las decisiones deladministrador de datos es el administrador de la base de datos. Su trabajo escrear la base de datos e implementar los controles necesarios para que serespeten las políticas establecidas por el administrador de datos. Eladministrador de la base de datos es el responsable de garantizar que el sistemaobtenga las prestaciones deseadas, además de prestar otros servicios técnicos.

El administrador de datos juega un papel más importante que el

administrador de la base de datos en las siguientes etapas del ciclo de vida:planificación de la base de datos, definición del sistema, recolección y análisis delos requisitos, diseño conceptual y diseño lógico de la base de datos. En el restode las etapas es donde el administrador de la base de datos tiene el papel másimportante: selección del SGBD, diseño de las aplicaciones, diseño físico,prototipado, implementación, conversión y carga de datos, prueba ymantenimiento.

En cualquier organización en la que muchas personas utilicen los mismosrecursos se requiere un administrador en jefe que supervise y controle dichosrecursos. En un entorno de bases de datos, el recurso primario es la propia base

de datos, y el secundario es el SGBD y el software con él relacionado. Laadministración de estos recursos es responsabilidad del administrador de basesde datos (DBA: database administrator). El DBA se encarga de autorizar elacceso a la base de datos, de coordinar y vigilar su empleo, y de adquirir losrecursos necesarios de software y hardware. El DBA es la persona responsablecuando surgen problemas como violaciones a la seguridad o una respuesta lenta

Page 11: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 11/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

5

del sistema. En las organizaciones grandes, el DBA cuenta con la ayuda de unpersonal para poder desempeñar estas funciones.

1.3.1 Características del DBA

  Perfil en el área de Informática  Conocimientos en modelos de Bases de datos( e-r, relacional, orientado a

objetos, etc.)  Diseñar e implementar Bases de Datos  Uso, dif erencia y elección de SGBD’s   Conocimientos en tipos de Bases de datos (Centralizado, Cliente/Servidor,

Distribuido)  Conocimientos en redes

1.3.2 Objetivos del administrador de Base de datos

• Instalación el Sistema Gestor de la Base de Datos (p.e. Oracle8i)• Diseño de la arquitectura de la BD y de modificaciones posteriores • Creación de la Base de Datos • Ajustes en la Base de Datos é Eficiencia • Seguridad en la Información (Confidencialidad) • Copias de Seguridad y Recuperación de Información (Disponibilidad)

Mantener el gestor y sus herramientas en un perfecto estado de funcionamiento

para conseguir una mayor eficacia y rapidez en el acceso de la información,

además de mantener la integridad, la seguridad y la disponibilidad de los datos

del sistema.

1.3.3 Funciones del administrador de Base de datos

 Planificación, diseño e implementación de los Sistemas de Bases de Datosde la Organización.

 Comunicación con los usuarios.

  Un SBD suele estar compuesto por tres componentes:o Una BD central con la mayoría de los datos.

Page 12: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 12/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

6

o Varias BDs funcionales, con funcionalidades concretas yutilizadas por un conjunto limitado de programas.o Algunas BDs dedicadas, para aplicaciones únicas.

  Centralizando los datos se evita la redundancia.

  La propiedad y el control de los datos se transfieren al DD centralque almacena el registro de la propiedad y el uso de cada dato.

  Puede que los usuarios se muestren resistentes a este cambiosobre el control de los datos.

  Esta resistencia puede mitigarse educando activamente a losusuarios sobre las ventajes de aprender la tecnología de las BDs,ya que les va a hacer más efectivos y eficientes en sus tareas.

  Esta educación es responsabilidad del ABD junto con los directivos

de más alto nivel.

  La formación y el entrenamiento deben dar al personal una visiónamplia de la función de un SBD como parte integral del SI de laempresa. Debe considerarse como un proceso continuo.

 Establecimiento de normas y procedimientos.

  La administración efectiva de una BD requiere que se establezcannormas y procedimientos uniformes para controlar la seguridad yla integridad de los datos eficientemente.

  En el área de programación, las normas se establecen paraasegurar que los programas se revisan y se prueban antes depasar a su producción. En el área de operaciones, para mantenerlos diarios de las transacciones.

  Los procedimientos se crean para la corrección de errores, eltratamiento de los puntos de control y para garantizar la copia deseguridad y la recuperación.

 La BD debe protegerse de accidentes como:

  Errores en la entrada de datos o en la programación

  Uso malintencionado de la BD

  Fallos de hw o sw que corrompan los datos

  Fallos durante el procesamiento de transacciones

Page 13: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 13/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

7

  Errores lógicos que infringen la suposición de que lastransacciones preservan las restricciones de consistencias de laBD

  Anomalías debido al acceso concurrente a la BD

  Recuperabilidad - Crear y probar respaldos

Hacer una copia de seguridad o copia de respaldo (backup en inglés, el usode este anglicismo está ampliamente extendido) se refiere a la copia de datos detal forma que estas copias adicionales puedan restaurar un sistema después deuna perdida de información.

La copia de seguridad es útil por dos razones: para restaurar unordenador a un estado operacional después de un desastre (copias de seguridad

del sistema) y para restaurar un pequeño número de ficheros después de quehayan sido borrados o dañados accidentalmente (copias de seguridad dedatos).Típicamente las copias de seguridad se suelen hacer en cintas magnéticas,si bien dependiendo de lo que se trate podrían usarse disquetes, CDs o puedenrealizarse sobre un centro de respaldo remoto propio o vía Internet. La copia sepuede dar sobre múltiples soportes como un disco duro, un CD-ROM, un DVD,cintas de datos (DAT, DLT, QIC o AIT entre otras), discos ZIP o JAZ o magnético-ópticos.

La copia de seguridad puede realizarse sobre los datos, en los cuales seincluyen también archivos que formen parte del sistema operativo. Así las copias

de seguridad son utilizadas típicamente como la última línea de defensa contraperdida de datos, y se convierten así en el último recurso a utilizar.

Las copias de seguridad en un sistema informático tienen por objetivo elmantener cierta capacidad de recuperación de la información ante posiblespérdidas. Esta capacidad puede llegar a ser algo muy importante, incluso crítico,para las empresas. Se han dado casos de empresas que han llegado adesaparecer ante la imposibilidad de recuperar sus sistemas al estado anterior aque se produjese un incidente de seguridad grave.

Así dependiendo de las características sobre las que se desenvuelva laposible copia de seguridad habrá que tener en cuenta las indicaciones que seexplican a continuación, no es lo mismo usar disquetes o CDs o centros derespaldo remoto, a su vez no es lo mismo un caso de un PC doméstico que unenorme sistema centralizado de una gran empresa o un organismo público.

Page 14: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 14/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

8

  Integridad - Verificar ó ayudar a la verificación en la integridad de datos

El término integridad de datos se refiere a la corrección y completitud delos datos en una base de datos. Cuando los contenidos de una base de datos se

modifican con sentencias INSERT, DELETE O UPDATE, la integridad de los datosalmacenados puede perderse de muchas maneras diferentes. Por ejemplo:

  Pueden añadirse datos no válidos a la base de datos, tales como unpedido que especifica un producto no existente.

  Pueden modificarse datos existentes tomando un valor incorrecto,como por ejemplo si se reasigna un vendedor a una oficina noexistente.

  Los cambios en la base de datos pueden perderse debido a unerror del sistema o a un fallo en el suministro de energía.

  Los cambios pueden ser aplicados parcialmente, como porejemplo si se añade un pedido de un producto sin ajustar lacantidad disponible para vender.

Una de las funciones importantes de un DBMS relacional es preservar laintegridad de sus datos almacenados en la mayor medida posible.

Tipos de Restricciones de Integridad en Bases de Datos Relacionales:

  Datos Requeridos: Establece que una columna tenga un valor noNULL. Se define efectuando la declaración de una columna es NOT

NULL cuando la tabla que contiene las columnas se crea porprimera vez, como parte de la sentencia CREATE TABLE.

  Chequeo de Validez: Cuando se crea una tabla cada columna tieneun tipo de datos y el DBMS asegura que solamente los datos deltipo especificado sean ingresados en la tabla.

  Integridad de Entidad: Establece que la clave primaria de una tabladebe tener un valor único para cada fila de la tabla, sino la base dedatos perderá su integridad. Se especifica en la sentencia CREATETABLE. El DBMS comprueba automáticamente la unicidad delvalor de la clave primaria con cada sentencia INSERT Y UPDATE.

Un intento de insertar o actualizar una fila con un valor de la claveprimaria ya existente fallara.

  - Integridad Referencial: Asegura la integridad entre las clavesajenas y primarias (relaciones padre/hijo). Existen cuatro

Page 15: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 15/66

UNIDAD I / CONCEPTOS RELACIONADOS A LA BASE DE DATOS

9

actualizaciones de la base de datos que pueden corromper laintegridad referencial:

 La inserción de una fila hijo es cuando no coincide la claveajena con la clave primaria del padre.

 La actualización en la clave ajena de la fila hijo, donde seproduce una actualización en la clave ajena de la fila hijo conuna sentencia UPDATE y la misma no coincide con ningunaclave primaria.

 La supresión de una fila padre, donde si una fila padre tieneuno o más hijos se suprime, las filas hijos quedaran huérfanas.

 La actualización de la clave primaria de una fila padre,donde si una fila padre tiene uno o mas hijos se actualiza suclave primaria, las filas hijos quedaran huérfanas.

  Seguridad: Definir y/o implementar controles de acceso a los datos

  Disponibilidad: Asegurarse del mayor tiempo de encendido

  Desempeño: Asegurarse del máximo desempeño incluso con laslimitaciones

  Desarrollo y soporte a pruebas: Ayudar a los programadores e ingenierosa utilizar eficientemente la base de datos.

El diseño lógico y físico de las bases de datos a pesar de no ser

obligaciones de un administrador de bases de datos, es a veces parte del trabajo.Esas funciones por lo general están asignadas a los analistas de bases de datos óa los diseñadores de bases de datos.

  Seguridad de los datos: protección de la BD de usos mal intencionados ono autorizados. Limitará a los usuarios a ejecutar únicamente operacionespermitidas.

  El Administrador a la hora de evaluar un SGBD habrá que fijarse enaspectos como:

  Diccionario de datos  Seguridad e integridad de los datos

  Capacidades de consulta y manipulación de datos

  Gestión de informes

  Soporte a los requisitos de programación especializada

  Organización física de los datos

Page 16: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 16/66

 

UNIDAD 2

DEFINICION DELESQUEMA CONCEPTUAL

Objetivo:

El alumno interpretará yconstruirá el esquema conceptual deuna base de datos

Page 17: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 17/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

11

En esta etapa se debe construir un esquema de la información que se usaen la empresa, independientemente de cualquier consideración física. A esteesquema se le denomina esquema conceptual . Al construir el esquema, los

diseñadores descubren la semántica (significado) de los datos de la empresa:encuentran entidades, atributos y relaciones. El objetivo es comprender:

  La perspectiva que cada usuario tiene de los datos.  La naturaleza de los datos, independientemente de su representación

física.  El uso de los datos a través de las áreas de aplicación.

El esquema conceptual se puede utilizar para que el diseñador transmitaa la empresa lo que ha entendido sobre la información que ésta maneja. Paraello, ambas partes deben estar familiarizadas con la notación utilizada en el

esquema. La más popular es la notación del modelo entidad-relación.

El esquema conceptual se construye utilizando la información que seencuentra en la especificación de los requisitos de usuario. El diseño conceptuales completamente independiente de los aspectos de implementación, comopuede ser el SGBD que se vaya a usar, los programas de aplicación, los lenguajesde programación, el hardware disponible o cualquier otra consideración física.Durante todo el proceso de desarrollo del esquema conceptual éste se prueba yse valida con los requisitos de los usuarios. El esquema conceptual es una fuentede información para el diseño lógico de la base de datos.

2.1 Diccionario de datos

Un diccionario de datos es un conjunto de metadatos(“datos acerca de los

datos”) que contiene las características lógicas de los datos que se van a utilizar

en el sistema que se programa, incluyendo nombre, descripción, alias, contenidoy organización.

Estos diccionarios se desarrollan durante el análisis de flujo de datos yayuda a los analistas que participan en la determinación de los requerimientosdel sistema, su contenido también se emplea durante el diseño del proyecto.

Nombre de los datos

Para distinguir un dato de otro, los analistas les asigna nombre significativos quese utilizan para tener una referencia de cada elemento a través del proceso totalde desarrollo de sistemas. Por lo tanto, debe tenerse cuidado para seleccionar,

Page 18: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 18/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

12

en forma significativa y entendible, los nombres de los datos, por ejemplo lafecha de factura es más significativa si se llama FECHA FACTURA que si se leconoce como ABCXXX.

Descripción de los datos

Establece brevemente lo que representa el dato en el sistema; por ejemplo, ladescripción para FECHA-DE-FACTURA indica que es la fecha en la cual se estápreparando la misma (para distinguirla de la fecha en la que se envió por correoo se recibió.

Las descripciones de datos se deben escribir suponiendo que a gente que los leano conoce nada en relación del sistema. Deben evitarse termino especiales oargot, todas las palabras deben se entendible para el lector

Alias

Con frecuencia el mismo dato puede conocerse con diferentes nombres,dependiendo de quién lo utilice. El uso de los alias deben evitar confusión. Undiccionario de dato significativo incluirá todos los alias.

Longitud de campo

Cuando las características del diseño del sistema se ejecuten más tarde en elproceso de desarrollo del sistema, será importante conocer la cantidad deespacio que necesita para cada dato.

Valores de los datos

En algunos procesos solo se permiten valores de datos específicos. Por ejemplo,en muchas compañías con frecuencia los números de orden de compra seproporcionan con un prefijo de una letra para indicar el departamento delorigen.

Registro de las descripciones de datos

Dadas que las descripciones se utilizarán en forma repetitiva a través de una

información y después, durante el diseño, se sugiere un formato fácil parautilizar que simplifique el registro y los detalles de consulta cuando se necesiten.

Page 19: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 19/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

13

Ejemplos:

Diccionario de datos Base de Datos Autores Campo Dominio Tipo de campo Indización Validación

Nombre Apellido, Nombre delautor de la imagen

Texto TérminoPalabra

EntradaobligatoriaSólo entradasúnicas

Nacionalidad País del autor Texto TérminoPalabra

Entradaobligatoria

Biografía Breve biografía delautor

Texto TérminoPalabra

Entradaobligatoria

Operador Iníciales del operador Texto Palabra Entradaobligatoria

FechaAlta Fecha de creación delregistro

Fechaautomática

PalabraTérmino

No hay validación

NumReg Número único de

identificación de cadaregistro

ID automático Palabra Entrada

obligatoria

2.2 Estructura de la base de datos

La estructura de una base de datos hace referencia a los tipos de datos,los vínculos o relaciones y las restricciones que deben cumplir esos datos(integridad de datos y redundancia de datos).

La redundancia hace referencia al almacenamiento de los mismos datosvarias veces en diferentes lugares. La redundancia de datos puede provocar

problemas como: Incremento del trabajo, Desperdicio de espacio dealmacenamiento e Inconsistencia de datos.

Si una base de datos está bien diseñada, no debería haber redundancia dedatos (exceptuando la redundancia de datos controlada, que se emplea paramejorar el rendimiento en las consultas a las bases de datos).

La estructura de una base de datos es diseñada o descripta empleandoalgún tipo de modelo de datos. 

Un modelo de datos para las bases de datos es una colección de conceptos

que se emplean para describir la estructura de una base de datos. Esa colecciónde conceptos incluye entidades, atributos y relaciones.

La mayoría de los modelos de datos poseen un conjunto de operacionesbásicas para especificar consultas y actualizaciones de la base de datos.

Page 20: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 20/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

14

Clasificación de los modelos de datos

Los modelos de datos sirven para clasificar los distintos tipos de SGBD.Existen diferentes modelos de datos para bases de datos como ser: 

  Modelo Entidad-Relación  Modelo relacional  Modelo orientado a objetos  Modelo relacional-objeto  Modelo jerárquico  Modelo de red

¿Cómo estructurar tu base de datos?Siguiendo los siguientes pasos podrás hacer la estructura de tu base:Identifica cual es el objetivo de tu base de datos. Por ejemplo, "Registrar

información sobre los visitantes de mi sitio"; "Almacenar el contenido mostradoen la sección de noticias".

Identificar cuales son las "entidades" y la información que queremosregistrar de ellas. Las entidades son todos aquellos elementos sobre los cualesqueremos registrar información, por ejemplo "Usuarios"; "Noticias";"Productos".

Identificar cual es la información que queremos recopilara de cada una delas entidades, estos se convierten en los campos de nuestras tablas. Por ejemplo,si la entidad es "Noticias" nos podría interesar almacenar información como"Fecha"; "Autor"; "Tema"; "Contenido"; "URL Imagen"; etc.

Campo clave principal: este es un campo que identificara cada registro de

forma única. Esto se utiliza con el objetivo de que cada uno de los registros seidentifiquen y no se tenga información duplicada que aumenta el tamaño de labase datos y por otro lado se generen errores mostrando información incorrecta.Este campo puede ser un número entero que irá aumentándose de formaautomática o un número aleatorio que no se repetirá.

En algunos casos nos interesará relacionar las tablas por un campo común, por ejemplo a algunos de nuestros visitantes le puede interesar la biografía deun autor, para esto, primero creamos una tabla con los datos de nuestroperiodista o del autor del artículo y lo que podemos hacer es relacionar la tablade datos del autor con la tabla de Noticias por medio de los campos "Nombre delautor" en el caso de los datos de la tabla autor y "Autor" en el caso de la tabla de

Noticias.De esta forma podemos obtener la información relacionada entre dos

tablas por campos comunes.Una vez has tenido en cuenta los objetivos, entidades y campos de tu base

de datos, debes contemplar el tipo de variable que almacenarás en cada campo. Sipor ejemplo lo que vas a almacenar son las fechas de publicación, lo que puedes

Page 21: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 21/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

15

hacer es elegir un tipo de datos de "Fecha" para que luego puedas gestionarfácilmente la información que haz almacenado.

2.3 Esquema de integridad

 Claves foráneas e integridad referencial

Podemos decir de manera simple que integridad referencial significa quecuando un registro en una tabla haga referencia a un registro en otra tabla, elregistro correspondiente debe existir. Por ejemplo, consideremos la relaciónentre una tabla cliente y una tabla venta.+------------+ +-------------+| cliente | | venta |+------------+ +-------------+| id_cliente | | id_factura || nombre | | id_cliente |+------------+ | cantidad |

+-------------+

Para poder establecer una relación entre dos tablas, es necesario asignarun campo en común a las dos tablas. Para este ejemplo, el campo id_clienteexiste tanto en la tabla cliente como en la tabla venta. La mayoría de las veces,este campo en común debe ser una clave primaria en alguna de las tablas. Vamosa insertar algunos datos en estas tablas.Tabla cliente+------------+--------------+| id_cliente | nombre |+------------+--------------+| 1 | Juan penas |

| 2 | Pepe el Toro |+------------+--------------+

Tabla venta+------------+------------+----------+| id_factura | id_cliente | cantidad |+------------+------------+----------+| 1 | 1 | 23 || 2 | 3 | 39 || 3 | 2 | 81 |+------------+------------+----------+

Hay dos registros en la tabla cliente, pero existen 3 id_cliente distintos en

la tabla venta. Habíamos dicho que las dos tablas se relacionan con el campoid_cliente, por lo tanto, podemos decir que Juan Penas tiene una cantidad de 23,y Pepe el Toro 81, sin embargo, no hay un nombre que se corresponda con elid_cliente 3.

Page 22: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 22/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

16

Las relaciones de claves foráneas se describen como relacionespadre/hijo (en nuestro ejemplo, cliente es el padre y venta es el hijo), y se diceque un registro es huérfano cuando su padre ya no existe.

Cuando en una base de datos se da una situación como esta, se dice que se

tiene una integridad referencial pobre (pueden existir otra clase de problemasde integridad). Generalmente esto va ligado a un mal diseño, y puede generarotro tipo de problemas en la base de datos, por lo tanto debemos evitar estasituación siempre que sea posible.

En el pasado, MySQL no se esforzaba en evitar este tipo de situaciones, yla responsabilidad pasaba a la aplicación. Para muchos desarrolladores, esta noera una situación del todo grata, y por lo tanto no se consideraba a MySQL paraser usado en sistemas "serios". Por supuesto, esta fue una de las cosas mássolicitadas en las anteriores versiones de MySQL; que se tuviera soporte paraclaves foráneas, para que MySQL mantenga la integridad referencial de los datos.

Una clave foránea es simplemente un campo en una tabla que se corresponde con la clave primaria de otra tabla.

Para este ejemplo, el campo id_cliente en la tabla venta es la claveforánea. Nótese que este campo se corresponde con el campo id_cliente en latabla cliente, en dónde este campo es la clave primaria.

Las claves foráneas tienen que ver precisamente con la integridadreferencial, lo que significa que si una clave foránea contiene un valor, ese valor serefiere a un registro existente en la tabla relacionada.

 Claves foráneas en MySQL

Estrictamente hablando, para que un campo sea una clave foránea, éstenecesita ser definido como tal al momento de crear una tabla.

Para trabajar con claves foráneas, necesitamos hacer lo siguiente:

  Crear ambas tablas del tipo InnoDB.

  Usar la sintaxis FOREIGN KEY(campo_fk) REFERENCESnombre_tabla (nombre_campo)

  Crear un índice en el campo que ha sido declarado clave foránea.

InnoDB no crea de manera automática índices en las claves foráneas o enlas claves referenciadas, así que debemos crearlos de manera explícita. Losíndices son necesarios para que la verificación de las claves foráneas sea másrápida. A continuación se muestra como definir las dos tablas de ejemplo conuna clave foránea.

Page 23: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 23/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

17

CREATE TABLE cliente(

id_cliente INT NOT NULL,nombre VARCHAR(30),

PRIMARY KEY (id_cliente)) TYPE = INNODB;

CREATE TABLE venta(

id_factura INT NOT NULL,id_cliente INT NOT NULL,cantidad INT,PRIMARY KEY(id_factura),FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)

) TYPE = INNODB;

La sintaxis completa de una restricción de clave foránea es la siguiente:[CONSTRAINT símbolo] FOREIGN KEY (nombre_columna, ...)

REFERENCES nombre_tabla (nombre_columna, ...)[ON DELETE {CASCADE | SET NULL | NO ACTION

| RESTRICT}][ON UPDATE {CASCADE | SET NULL | NO ACTION

| RESTRICT}]

Las columnas correspondientes en la clave foránea y en la clave

referenciada deben tener tipos de datos similares para que puedan ser

comparadas sin la necesidad de hacer una conversión de tipos. El tamaño y elsigno de los tipos enteros debe ser el mismo. En las columnas de tipo caracter, eltamaño no tiene que ser el mismo necesariamente.

Si en una tabla, un registro contiene una clave foránea con un valor NULO,significa que no existe ninguna relación con otra tabla.Se pueden agregarrestricciones de clave foránea a una tabla con el uso de la sentencia ALTERTABLE. La sintaxis es:ALTER TABLE nombre_tabla ADD [CONSTRAINT símbolo] FOREIGN KEY(...)REFERENCES otra_tabla(...) [acciones_ON_DELETE][acciones_ON_UPDATE]

Por ejemplo, la creación de la clave foránea en la tabla venta que semostró anteriormente pudo haberse hecho de la siguiente manera con el uso deuna sentencia ALTER TABLE:CREATE TABLE venta(

id_factura INT NOT NULL,id_cliente INT NOT NULL,cantidad INT,PRIMARY KEY(id_factura),INDEX (id_cliente)

) TYPE = INNODB;

Page 24: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 24/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

18

ALTER TABLE venta ADD FOREIGN KEY(id_cliente) REFERENCEScliente(id_cliente);

No debe usarse una sentencia ALTER TABLE en una tabla que está siendoreferenciada, si se quiere modificar el esquema de la tabla, se recomienda

eliminar la tabla y volverla a crear con el nuevo esquema. Cuando MySQL haceun ALTER TABLE, puede que use de manera interna un RENAME TABLE, y por lotanto, se confundan las restricciones de clave foránea que se refieren a la tabla.Esta restricción aplica también en el caso de la sentencia CREATE INDEX, ya queMySQL la procesa como un ALTER TABLE.

 Inserción de registros con claves foráneas

La integridad referencial se puede comprometer básicamente en tressituaciones: cuando se está insertando un nuevo registro, cuando se estáeliminando un registro, y cuando se está actualizando un registro. La restricción

de clave foránea que hemos definido se asegura que cuando un nuevo registrosea creado en la tabla venta, éste debe tener su correspondiente registro en latabla cliente.

Una vez que hemos creado las tablas, vamos a insertar algunos datos quenos sirvan para demostrar algunos conceptos importantes:mysql> INSERT INTO cliente VALUES(1,'Juan Penas');Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO cliente VALUES(2,'Pepe el toro');Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO venta VALUES(1,1,23);Query OK, 1 row affected (0.03 sec)

mysql> INSERT INTO venta VALUES(3,2,81);Query OK, 1 row affected (0.03 sec)

En este momento no hay ningún problema, sin embargo, vamos a ver quesucede cuando intentamos insertar un registro en la tabla venta que se refiera aun cliente no existente cuyo id_cliente es 3:mysql> INSERT INTO venta VALUES(2,3,39);ERROR 1216: Cannot add or update a child row: a foreign keyconstraint fails

El hecho es que MySQL no nos permite insertar este registro, ya que el

cliente cuyo id_cliente es 3 no existe. La restricción de clave foránea asegura quenuestros datos mantienen su integridad. Sin embargo, ¿qué sucede cuandoeliminamos algún registro?. Vamos a agregar un nuevo cliente, y un nuevoregistro en la tabla venta, posteriormente eliminaremos el registro de nuestrotercer cliente:

Page 25: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 25/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

19

mysql> INSERT INTO cliente VALUES(3,'Pepe pecas');Query OK, 1 row affected (0.05 sec)

mysql> INSERT INTO venta VALUES(2,3,39);Query OK, 1 row affected (0.05 sec)

mysql> DELETE FROM cliente WHERE id_cliente=3;ERROR 1217: Cannot delete or update a parent row: a foreign keyconstraint fails

Debido a nuestra restricción de clave foránea, MySQL no permite queeliminemos el registro de cliente cuyo id_cliente es 3, ya que se hace referencia aéste en la tabla venta. De nuevo, se mantiene la integridad de nuestros datos. Sinembargo existe una forma en la cual podríamos hacer que la sentencia DELETEse ejecute de cualquier manera, y la veremos brevemente, pero primeronecesitamos saber cómo eliminar (quitar) una clave foránea.

 Eliminación de una clave foránea

No podemos sólo eliminar una restricción de clave foránea como si fueraun índice ordinario. Veamos que sucede cuando lo intentamos.

mysql> ALTER TABLE venta DROP FOREIGN KEY;ERROR 1005: Can't create table '.test#sql-228_4.frm' (errno: 150)

Para eliminar la clave foránea se tiene que especificar el ID que ha sidogenerado y asignado internamente por MySQL a la clave foránea. En este caso, sepuede usar la sentencia SHOW CREATE TABLE para determinar dicho ID.mysql> SHOW CREATE TABLE venta;+--------+-----------------------------------------------------+| Table | Create Table |+--------+-----------------------------------------------------+| venta | CREATE TABLE 'venta' ( || | 'id_factura' int(11) NOT NULL default '0', || | 'id_cliente' int(11) NOT NULL default '0', || | 'cantidad' int(11) default NULL, || | PRIMARY KEY ('id_factura'), || | KEY 'id_cliente' ('id_cliente'), || | CONSTRAINT '0_22' FOREIGN KEY ('id_cliente') || | REFERENCES 'cliente' ('id_cliente') ) TYPE=InnoDB |+-------+------------------------------------------------------+

1 row in set (0.00 sec)

En nuestro ejemplo, la restricción tiene el ID 0_22 (es muy probable queeste valor sea diferente en cada caso).mysql> ALTER TABLE venta DROP FOREIGN KEY 0_22;Query OK, 3 rows affected (0.23 sec)Records: 3 Duplicates: 0 Warnings: 0

Page 26: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 26/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

20

Eliminación de registros con claves foráneasUna de las principales bondades de las claves foráneas es que permiten

eliminar y actualizar registros en cascada.Con las restricciones de clave foránea podemos eliminar un registro de la

tabla cliente y a la vez eliminar un registro de la tabla venta usando sólo unasentencia DELETE. Esto es llamado eliminación en cascada, en donde todos losregistros relacionados son eliminados de acuerdo a las relaciones de claveforánea. Una alternativa es no eliminar los registros relacionados, y poner elvalor de la clave foránea a NULL (asumiendo que el campo puede tener un valornulo). En nuestro caso, no podemos poner el valor de nuestra clave foráneaid_cliente en la tabla venta, ya que se ha definido como NOT NULL. Las opcionesestándar cuando se elimina una registro con clave foránea son:

  ON DELETE RESTRICT

  ON DELETE NO ACTION

  ON DELETE SET DEFAULT

  ON DELETE CASCADE

  ON DELETE SET NULL

ON DELETE RESTRICT es la acción predeterminada, y no permite unaeliminación si existe un registro asociado, como se mostró en el ejemploanterior. ON DELETE NO ACTION hace lo mismo.ON DELETE SET DEFAULT actualmente no funciona en MySQL - se supone quepone el valor de la clave foránea al valor por omisión (DEFAULT) que se definió

al momento de crear la tabla.Si se especifica ON DELETE CASCADE, y una fila en la tabla padre es eliminada,entonces se eliminarán las filas de la tabla hijo cuya clave foránea sea igual alvalor de la clave referenciada en la tabla padre. Esta acción siempre ha estadodisponible en MySQL.Si se especifica ON DELETE SET NULL, las filas en la tabla hijo son actualizadasautomáticamente poniendo en las columnas de la clave foránea el valor NULL. Sise especifica una acción SET NULL, debemos asegurarnos de no declarar lascolumnas en la tabla como NOT NULL.

A continuación se muestra un ejemplo de eliminación en cascada:

mysql> ALTER TABLE venta ADD FOREIGN KEY(id_cliente)REFERENCEScliente(id_cliente) ON DELETE CASCADE;Query OK, 3 rows affected (0.23 sec)Records: 3 Duplicates: 0 Warnings: 0

Page 27: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 27/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

21

Vamos a ver como están nuestros registros antes de ejecutar la sentenciaDELETE:mysql> SELECT * FROM cliente;+------------+--------------+| id_cliente | nombre |

+------------+--------------+| 1 | Juan Penas || 2 | Pepe el toro || 3 | Pepe pecas |+------------+--------------+3 rows in set (0.00 sec)

mysql> SELECT * FROM venta;+------------+------------+----------+| id_factura | id_cliente | cantidad |+------------+------------+----------+| 1 | 1 | 23 || 2 | 3 | 39 |

| 3 | 2 | 81 |+------------+------------+----------+3 rows in set (0.00 sec)

Ahora eliminaremos a Pepe Pecas de la base de datos:

mysql> DELETE FROM cliente WHERE id_cliente=3;Query OK, 1 row affected (0.05 sec)

mysql> SELECT * FROM venta;+------------+------------+----------+| id_factura | id_cliente | cantidad |+------------+------------+----------+| 1 | 1 | 23 || 3 | 2 | 81 |+------------+------------+----------+2 rows in set (0.00 sec)

mysql> SELECT * FROM cliente;+------------+--------------+| id_cliente | nombre |+------------+--------------+| 1 | Juan Penas || 2 | Pepe el toro |

+------------+--------------+2 rows in set (0.00 sec)

Con la eliminación en cascada, se ha eliminado el registro de la tablaventa al que estaba relacionado Pepe Pecas.

Page 28: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 28/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

22

 Actualización de registros con claves foráneas

Estas opciones son muy similares cuando se ejecuta una sentenciaUPDATE, en lugar de una sentencia DELETE. Estas son:

  ON UPDATE CASCADE

  ON UPDATE SET NULL

  ON UPDATE RESTRICT

Vamos a ver un ejemplo, pero antes que nada, tenemos que eliminar larestricción de clave foránea (debemos usar el ID específico de nuestra tabla).

mysql> ALTER TABLE venta DROP FOREIGN KEY 0_26;Query OK, 2 rows affected (0.22 sec)Records: 2 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE venta ADD FOREIGN KEY(id_cliente)REFERENCEScliente(id_cliente) ON DELETE RESTRICT ON UPDATE CASCADE;Query OK, 2 rows affected (0.22 sec)Records: 2 Duplicates: 0 Warnings: 0

NOTA: Se debe especificar ON DELETE antes de ON UPDATE, ya que deotra manera se recibirá un error al definir la restricción.

Ahora está lista la clave foránea para una actualización en cascada. Estees el ejemplo:

mysql> SELECT * FROM venta;

+------------+------------+----------+| id_factura | id_cliente | cantidad |+------------+------------+----------+| 1 | 1 | 23 || 3 | 2 | 81 |+------------+------------+----------+2 rows in set (0.00 sec)

mysql> UPDATE cliente SET id_cliente=10 WHERE id_cliente=1;Query OK, 1 row affected (0.05 sec)Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM venta;

+------------+------------+----------+| id_factura | id_cliente | cantidad |+------------+------------+----------+| 1 | 10 | 23 || 3 | 2 | 81 |+------------+------------+----------+2 rows in set (0.00 sec)

Page 29: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 29/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

23

En este caso, al actualizar el valor de id_cliente en la tabla cliente, seactualiza de manera automática el valor de la clave foránea en la tabla venta.Esta es la actualización en cascada.

Un ejemplo más 

Observar y estudiar detenidamente el diagrama entidad/relación de lafigura que se muestra a continuación.

Queda como ejercicio al lector verificar que a partir de este diagrama segenera un código SQL similar al mostrado a continuación, que nos sirve para lacreación de las tablas con sus correspondientes definiciones de claves foráneas:

Considerar que se desean hacer eliminaciones y actualizaciones encascada, y que en la tabla poema_libro la clave primaria está formada por amboscampos (id_poema y id_libro).

CREATE TABLE libro (id_libro INT NOT NULL,titulo VARCHAR(100) NULL,precio NUMERIC(5,2) NULL,PRIMARY KEY(id_libro)

) TYPE=InnoDB;

Page 30: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 30/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

24

CREATE TABLE escritor (id_escritor INT NOT NULL,nombre VARCHAR(30) NULL,apellidos VARCHAR(40) NULL,direccion VARCHAR(100) NULL,PRIMARY KEY(id_escritor)

) TYPE=InnoDB;

CREATE TABLE poema (id_poema INT NOT NULL,id_escritor INT NOT NULL,titulo VARCHAR(50) NULL,contenido TEXT NULL,PRIMARY KEY(id_poema),INDEX(id_escritor),FOREIGN KEY(id_escritor) REFERENCES escritor(id_escritor)

ON DELETE CASCADE ON UPDATE CASCADE) TYPE=InnoDB;

CREATE TABLE poema_libro (id_poema INT NOT NULL,id_libro INT NOT NULL,PRIMARY KEY(id_poema, id_libro),INDEX (id_poema), INDEX(id_libro),FOREIGN KEY(id_poema) REFERENCES poema(id_poema)

ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY(id_libro) REFERENCES libro(id_libro)

ON DELETE CASCADE ON UPDATE CASCADE) TYPE=InnoDB;

2.4 Esquema de seguridad y autorización

El objetivo es proteger la Base de Datos contra accesos no autorizados.Se llama también privacidad.

INCLUYE ASPECTOS DE:· Aspectos legales, sociales y éticos· Políticas de la empresa, niveles de información publica y privada· Controles de tipo físico, acceso a las instalaciones· Identificación de usuarios: voz, retina del ojo, etc.· Controles de sistema operativoMEDIDAS DE SEGURIDAD:· Físicas: Controlar el acceso al equipo. Tarjetas de acceso, etc· Personal: Acceso sólo del personal autorizado. Evitar sobornos, etc.· SO: Seguridad a nivel de SO· SGBD: Uso herramientas de seguridad que proporcione el SGBD. Perfiles

de usuario, vistas, restricciones de uso de vistas, etc.

Page 31: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 31/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

25

Un SMBD cuenta con un subsistema de seguridad y autorización que seencarga de garantizar la seguridad de porciones de la BD contra el acceso noautorizado.

Identificar y autorizar a los usuarios: uso de códigos de acceso y palabras

claves, exámenes, impresiones digitales, reconocimiento de voz, barrido de laretina, etc.Autorización: usar derechos de acceso dados por el terminal, por la

operación que puede realizar o por la hora del día.Uso de técnicas de cifrado: para proteger datos en Base de Datos

distribuidas o con acceso por red o Internet.Diferentes tipos de cuentas: en especial del ABD con permisos para:

creación de cuentas, concesión y revocación de privilegios y asignación de losniveles de seguridad.

Manejo de la tabla de usuarios con código y contraseña, control de lasoperaciones efectuadas en cada sesión de trabajo por cada usuario y anotadas en

la bitácora, lo cual facilita la auditoría de la Base de Datos.Otro aspecto importante de la seguridad, es el que tiene que ver con el

uso no autorizado de los recursos:Lectura de datos.Modificación de datos.Destrucción de datos.Uso de recursos: ciclos de CPU, impresora, almacenamiento. 

Principios básicos para la seguridadSuponer que el diseño del sistema es público.El defecto debe ser: sin acceso.

Hasta ahora hemos usado sólo el usuario 'root', que es el administrador, yque dispone de todos los privilegios disponibles en MySQL.

Sin embargo, normalmente no será una buena práctica dejar que todoslos usuario con acceso al servidor tengan todos los privilegios. Para conservar laintegridad de los datos y de las estructuras será conveniente que sólo algunosusuarios puedan realizar determinadas tareas, y que otras, que requieren mayorconocimiento sobre las estructuras de bases de datos y tablas, sólo puedanrealizarse por un número limitado y controlado de usuarios.

Los conceptos de usuarios y privilegios están íntimamente relacionados.No se pueden crear usuarios sin asignarle al mismo tiempo privilegios. De hecho,

la necesidad de crear usuarios está ligada a la necesidad de limitar las accionesque tales usuarios pueden llevar a caobo.

MySQL permite definir diferentes usuarios, y además, asignar a cada unodeterminados privilegios en distintos niveles o categorías de ellos.

Page 32: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 32/66

Page 33: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 33/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

27

Pero no podrá hacer mucho más, ya que no tiene privilegios. No tendrá,por ejemplo, oportunidad de hacer selecciones de datos, de crear bases de datoso tablas, insertar datos, etc.

 CONCEDER PRIVILEGIOS

Para que un usuario pueda hacer algo más que consultar algunasvariables del sistema debe tener algún privilegio. Lo más simple es conceder elprivilegio para seleccionar datos de una tabla concreta. Esto se haría así:

La misma sentencia GRANT se usa para añadir privilegios a un usuarioexistente.mysql> nsQuery OK, 0 rows affected (0.02 sec)

Esta sentencia concede al usuario 'anonimo' el privilegio de ejecutarsentencias SELECT sobre la tabla 'gente' de la base de datos 'prueba'.

Un usuario que abra una sesión y se identifique como 'anonimo' podráejecutar estas sentencias:

mysql> SHOW DATABASES;+----------+| Database |+----------+| prueba |+----------+1 row in set (0.01 sec)

mysql> USE prueba;Database changed

mysql> SHOW TABLES;+------------------+| Tables_in_prueba |+------------------+| gente |+------------------+1 row in set (0.00 sec)

mysql> SELECT * FROM gente;+----------+------------+| nombre | fecha |+----------+------------+| Fulano | 1985-04-12 || Mengano | 1978-06-15 || Tulano | 2001-12-02 || Pegano | 1993-02-10 || Pimplano | 1978-06-15 || Frutano | 1985-04-12 |+----------+------------+6 rows in set (0.05 sec)

Page 34: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 34/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

28

Como se ve, para este usuario sólo existe la base de datos 'prueba' ydentro de esta, la tabla 'gente'. Además, podrá hacer consultas sobre esa tabla,pero no podrá añadir ni modificar datos, ni por supuesto, crear o destruir tablasni bases de datos.

Para conceder privilegios globales se usa ON *.*, para indicar que losprivilegios se conceden en todas las tablas de todas las bases de datos.

Para conceder privilegios en bases de datos se usa ON nombre_db.*,indicando que los privilegios se conceden sobre todas las tablas de la base dedatos 'nombre_db'.

Usando ON nombre_db.nombre_tabla, concedemos privilegios de nivel detabla para la tabla y base de datos especificada.

En cuanto a los privilegios de columna, para concederlos se usa la sintaxistipo_privilegio (lista_de_columnas), [tipo_privilegio (lista_de_columnas)].

Otros privilegios que se pueden conceder son:  ALL: para conceder todos los privilegios.

  CREATE: permite crear nuevas tablas.

  DELETE: permite usar la sentencia DELETE.

  DROP: permite borrar tablas.

  INSERT: permite insertar datos en tablas.

  UPDATE: permite usar la sentencia UPDATE.

Para ver una lista de todos los privilegios existentes consultar la sintaxisde la sentencia GRANT.

Se pueden conceder varios privilegios en una única sentencia. Por

ejemplo:mysql> GRANT SELECT, UPDATE ON prueba.gente TO anonimo IDENTIFIED BY 'clave';Query OK, 0 rows affected (0.22 sec)

Un detalle importante es que para crear usuarios se debe tener elprivilegio GRANT OPTION, y que sólo se pueden conceder privilegios que seposean.

 REVOCAR PRIVILEGIOS

Para revocar privilegios se usa la sentencia REVOKE.REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...

ON {tbl_name | * | *.* | db_name.*}FROM user [, user] ...

La sintaxis es similar a la de GRANT, por ejemplo, para revocar elprivilegio SELECT de nuestro usuario 'anonimo', usaremos la sentencia:

Page 35: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 35/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

29

mysql> REVOKE SELECT ON prueba.gente FROM anonimo;Query OK, 0 rows affected (0.05 sec)

 MOSTRAR PRIVILEGIOS DE UN USUARIO

Podemos ver qué privilegios se han concedido a un usuario mediante lasentencia SHOW GRANTS. La salida de esta sentencia es una lista de sentenciasGRANT que se deben ejecutar para conceder los privilegios que tiene el usuario.Por ejemplo:

mysql> SHOW GRANTS FOR anonimo;+--------------------------------------------------------------------+| Grants for anonimo@% |+--------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'anonimo'@'%' IDENTIFIED BY PASSWORD '*5...' || GRANT SELECT ON `prueba`.`gente` TO 'anonimo'@'%' |

+--------------------------------------------------------------------+2 rows in set (0.00 sec)

 NOMBRES DE USUARIOS Y CONTRASENAS

Como podemos ver por la salida de la sentencia SHOW GRANTS, elnombre de usuario no se limita a un nombre simple, sino que tiene dos partes.La primera consiste en un nombre de usuario, en nuestro ejemplo 'anonimo'. Lasegunda parte, que aparece separada de la primera por el carácter '@' es unnombre de máquina (host). Este nombre puede ser bien el de una máquina, porejemplo, 'localhost' para referirse al ordenador local, o cualquier otro nombre, obien una ip.

La parte de la máquina es opcional, y si como en nuestro caso, no se pone,el usuario podrá conectarse desde cualquier máquina. La salida de SHOWGRANTS lo indica usando el comodín '%' para el nombre de la máquina.

Si creamos un usuario para una máquina o conjunto de máquinasdeterminado, ese usuario no podrá conectar desde otras máquinas. Por ejemplo:

mysql> GRANT USAGE ON * TO anonimo@localhost IDENTIFIED BY 'clave';Query OK, 0 rows affected (0.00 sec)

Un usuario que se identifique como 'anonimo' sólo podrá entrar desde elmismo ordenador donde se está ejecutando el servidor.

En este otro ejemplo:mysql> GRANT USAGE ON * TO [email protected] IDENTIFIED BY'clave';Query OK, 0 rows affected (0.00 sec)

Page 36: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 36/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

30

El usuario 'anonimo' sólo puede conectarse desde un ordenador cuyo IPsea '10.28.56.15'.

Aunque asignar una constraseña es opcional, por motivos de seguridad esrecomendable asignar siempre una.

La contraseña se puede escribir entre comillas simples cuando se crea unusuario, o se puede usar la salida de la función PASSWORD() de forma literal,para evitar enviar la clave en texto legible.

Si al añadir privilegios se usar una clave diferente en la cláusulaIDENTIFIED BY, sencillamente se sustituye la contraseña por la nueva.

 BORRAR USUARIOS

Para eliminar usuarios se usa la sentencia DROP USER.No se puede eliminar un usuario que tenga privilegios, por ejemplo:

mysql> DROP USER anonimo;

ERROR 1268 (HY000): Can't drop one or more of the requested usersmysql>

Para eliminar el usuario primero hay que revocar todos sus privilegios:mysql> SHOW GRANTS FOR anonimo;+--------------------------------------------------------------------+| Grants for anonimo@% |+--------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'anonimo'@'%' IDENTIFIED BY PASSWORD '*5...' || GRANT SELECT ON `prueba`.`gente` TO 'anonimo'@'%' |+--------------------------------------------------------------------+2 rows in set (0.00 sec)mysql> REVOKE SELECT ON prueba.gente FROM anonimo;Query OK, 0 rows affected (0.00 sec)

mysql> DROP USER anonimo;Query OK, 0 rows affected (0.00 sec)

2.5 Herramientas de apoyo para el diseño del esquema

Existe al menos 20 herramientas libres para diseñar software totalmente libres.

  Todas utilizan la notación UML

  El nivel de avance entre una y otra es notable, casi todas ofrecen comofuncionalidad :

o  Diagramas de caso de uso

o  Diagramas de claseso  Diagramas de secuenciao  Generación de código en java, c++, python y phpo  Algunas entidad-relación (pero ninguna lo suficientemente

avanzada)

Page 37: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 37/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

31

  Pocas herramientas permiten ingeniería reversa, y si lo hacen solo es delenguajes tipo java o c++

EJEMPLOS:

Use Case Maker, solo documentar casos de usos y requerimientos relativos,http://use-case-maker.sourceforge.net/index.htmlObjectBuilder, permite documentar clases, relaciones, métodos, etc.,http://sourceforge.net/projects/objectbuilder/ BoUml, herramienta de diseño UML multiplataforma, es bastante completa tienetodos los diagramas UML estándares y genera código,http://bouml.sourceforge.net/ Gaphor, mismas característica que BoUml pero menos diagramas,http://gaphor.devjavu.com 

Taylor, es un set de plug-ins para Eclipse para modelar bajo UML, genera y leecódigo Java, permite modelar incluse modelos de procesos de negocios y muchascosas mas, incorpora muchas tecnologías,http://taylor.sourceforge.net  

2.6 Implicaciones por la modificación de esquemas

Las solicitudes de modificación son inevitables una vez que el sistema haentrado en operación, pueden aparecer solicitudes de nuevos requerimientos oestos pueden resultar de una comprensión inadecuada de los mismos. En

cualquier caso, deberán efectuarse modificaciones en relación con toda lacomunidad de la BD, ya que el impacto de tales alteraciones será resentido pormás de una aplicación. En algunos casos, pueden darse modificaciones quepresentan efectos negativos para algunos usuarios; estos casos deberán sertratados esgrimiendo como argumento los beneficios globales que seránobtenidos de tales alteraciones.

Una administración eficaz de la BD debe incluir procedimientos ypolíticas mediante las cuales los usuarios puedan registrar sus necesidades demodificaciones, y así la comunidad podrá analizar y discutir los impactos dedichas modificaciones, determinándose entonces la puesta o no en práctica detales alteraciones.

En razón del tamaño y complejidad de una BD y de sus aplicaciones, lasmodificaciones pudieran tener resultados inesperados. El DBA debe estarpreparado para reparar la BD y reunir suficiente información para diagnosticar y

Page 38: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 38/66

UNIDAD II / DEFINICION DEL ESQUEMA CONCEPTUAL

32

corregir el problema provocado por la falla. Después de un cambio la BD es másvulnerable a fallas.

2.7 Cálculo del tamaño de la base de datos

El tamaño de la base de datos depende de su aplicación, así como del número deusuarios y elementos.

Page 39: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 39/66

 

UNIDAD 3

DEFINICION DELESQUEMA INTERNO

Objetivo:Descripción de la organización física delos datos: estructuras de datos en discoy rutas de acceso. 

Page 40: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 40/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

34

 Los datos interesan desde el punto de vista de los parámetros físicos dealmacenamiento

 Elecciones en base a consideraciones de localización y de acceso.

 Se define mediante el esquema interno (DDL interno) que describe la

representación en los medios de almacenamiento de los datos del esquemaconceptual, sus interrelaciones y los métodos de acceso

 Muy dependiente del SGBD

NIVELES DE ABSTRACCION

Nivel interno (Nivel Físico)- Estructura física de almacenamiento- Todos los detalles de cómo el DBMS utiliza:

 el disco duro

 la memoria, etc.- Tema principal

 El sistema debe ser rápido en responder y eficiente en el uso deespacio

- Administrador de la base de datos

Nivel conceptual (Nivel Lógico)- Estructura lógica de almacenamiento- Diseño conceptual de la base de datos

 Tablas, columnas, etc.

- Tema principal El diseño debe reflejar conceptualmente el problema a modelar

- Administradores de datos

Diferencias entre el modelo lógico y el conceptual

Page 41: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 41/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

35

  El modelo conceptual es independiente del DBMS que se vaya a utilizar. Ellógico depende de un tipo de SGBD en particular

  El modelo lógico es más cercano al ordenador

  Es más cercano al usuario el modelo conceptual, el lógico forma el paso

entre el informático y el sistema.

Nivel Vista (Esquema externo)- Vistas sobre las tablas- Requiere sólo acceso parcial a los datos- Público objetivo

 Desarrolladores de aplicaciones

 Usuarios finales- Tema principal

 Cada vista debe reflejar adecuadamente la parte de los datos que

interesa a cada uno

EJEMPLO:

Esquema conceptual

Page 42: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 42/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

36

ESQUEMA FISICO

ESQUEMA EXTERNO

Page 43: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 43/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

37

ESQUEMA INTERNO:Corresponde a la forma y estructura de datos que adopta la base de datos en los

dispositivos de almacenamiento. Generalmente esta estructura es definida ymanipulada por el Sistema de Administración de Bases de Datos. Losadministradores y diseñadores de la base de datos incidirán sólo en aquellosaspectos en que el SABD no puede decidir automáticamente.

3.1 Estructura de datosEstructura lógica vs. Estructura física.

Es claro que la forma física como estén almacenados los datos esindependiente del concepto que tengamos de ellos. Son el conjunto de

programas que saben cómo traer, unir y mostrar los datos, así como aquellosencargados de almacenarlos, los que le dan coherencia al concepto Base deDatos.

Del diseño de la estructura lógica depende toda la funcionalidad delsistema. Almacenar datos en una base de datos aprovechando solamente la

Page 44: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 44/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

38

estructura física no ofrece, relativamente, ninguna ventaja. En cambio un buendiseño de acuerdo a la naturaleza de los datos y a la forma como seránexplotados hace toda la diferencia.

Un gran problema es la inconsistencia de datos. Digamos que empleamosun archivo secuencial para almacenar la información de clientes. Supongamosque tenemos varios programas que utilizan esa información y que en unmomento dado se pueden tener registros duplicados con atributos diferentes.Por ejemplo, una persona cambia de dirección y al no tener una estructura biendefinida, no alteramos el registro, sino que lo damos de alta de nuevo con lanueva dirección. De esta manera, tendremos a la misma persona con dos datosdiferentes y sin posibilidad de garantizar que todos los programas tendrán encuenta que la dirección válida es la del segundo registro que aparece.

Puede ocurrir también que dos personas estén modificando

simultáneamente atributos distintos del mismo registro. Sin un sistema demanejo de concurrencia, no podemos garantizar que ambos cambiospermanezcan.

Bajo la misma suposición de uno o más archivos con la información yvarios programas independientes que la explotan, es fácil ver que cualquiernueva explotación de la información implica un nuevo programa y que mantenerun sistema como este conlleva toda la complejidad de mantener variosprogramas cuando se añade o elimina una columna a los registros.

Otro ejemplo, si tenemos un registro de personas donde almacenamos

datos como: nombre, RFC, puesto, salario base, dirección, teléfono, fecha denacimiento, gustos musicales, aficiones, nombre, fecha de nacimiento yocupación del conyugue, nombres y fechas de nacimiento de sus hijos, nombresde sus mascotas, autos que posee (con todas las características), etc.; yfrecuentemente sólo utilizaremos nombre, RFC, puesto y salario base paragenerar una nómina, esto implica que en cada corrida, recuperaremosinformación que no necesitamos, con el agravante de que tenemos que traerregistros inmensos para utilizar sólo cuatro campos. El problema no es elalmacenaje en disco, sino el tiempo desperdiciado en recuperar registros de talmagnitud.

Un diseño un poco más inteligente tendría dos tablas, una con los datosmás frecuentemente empleados de cada persona y la otra con el resto de lainformación que se emplea quizá sólo para fines estadísticos o para enviartarjetas de felicitación. Por supuesto, ambas tablas estarán relacionadas por unallave primaria común.

Page 45: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 45/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

39

Si tenemos un sistema donde por un lado hacemos un abono y por otro uncargo en una operación que está relacionada, es de esperar que no ocurra elcargo si no puede ocurrir el abono, o viceversa. Es decir, debemos de tenertransacciones atómicas. En este caso, la pareja de transacciones debe de ocurrir

por completo o no debe de ocurrir en lo absoluto.

Finalmente, un terrible problema es la exposición de los datos. En muchoscasos nos interesa que ciertas gentes tengan acceso sólo a parte de lainformación. Es de mal gusto que todos los empleados sepan cuál es el salariodel director.

Comprensión de los datos

Antes de avanzar con el diseño de la tabla, es importante que sepaexactamente qué pretende hacer con los datos y cómo cambiarán en el

transcurso del tiempo. Las decisiones que tome afectarán al futuro diseño.

¿Qué datos se necesitan?

Al diseñar una aplicación, resulta de vital importancia ser consciente delos resultados finales, para asegurarse de que dispone de todos los datosnecesarios y de que conoce su procedencia. Por ejemplo, ¿cuál es la aparienciade los informes?, ¿de dónde viene cada dato? y ¿dispongo de todos los datos? Nohay nada más perjudicial para un proyecto que darse cuenta, después de haberloempezado, que faltan datos relativos a un informe importante.

Una vez que sepa qué datos necesita, debe determinar su procedencia. ¿Sehan importado de otro origen? ¿Hay que limpiarlos o comprobarlos? ¿El usuarioescribe datos?

El primer paso en el diseño de la base de datos consiste en tener una ideaclara de qué datos se necesitan y de cuál es su procedencia.

¿Qué va a hacer con los datos?

¿Los usuarios tendrán que editar los datos? En tal caso, ¿cómo se debenmostrar los datos para que los usuarios puedan comprenderlos y editarlos? ¿Hay

reglas de validación y tablas de búsqueda relacionada? ¿Hay cuestiones deauditoría asociadas a la entrada de datos que hagan necesario el mantenimientode copias de seguridad de las ediciones y eliminaciones? ¿Qué tipo de resumense debe mostrar al usuario? ¿Debe generar archivos de exportación? Con estainformación, podrá hacerse una idea de la relación entre unos campos y otros.

Page 46: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 46/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

40

¿De qué modo se relacionan unos datos con otros?

Agrupe los datos en campos relacionados (como la informaciónrelacionada con el cliente, la información relacionada con las facturas, etc.). Cada

grupo de campos representa futuras tablas. A continuación, debe considerar elmodo en que se relacionarán unos con otros. Por ejemplo, ¿qué tablas estánrelacionadas en una relación de uno a varios (por ejemplo, un cliente puedetener varias facturas)? ¿Qué tablas tienen una relación de uno a uno (a menudo,una consideración para combinar en una tabla)?

¿Qué ocurrirá con los datos al pasar el tiempo?

Con frecuencia, después de diseñar las tablas, el impacto de tiempo dejade tenerse en cuenta, lo que posteriormente puede provocar serios problemas.

Muchos diseños de tabla funcionan perfectamente para utilizarlos de formainmediata. No obstante, muchos se estropean cuando los usuarios modifican losdatos, cuando se agregan datos nuevos y conforme va pasando el tiempo. Amenudo, los desarrolladores se dan cuenta de que deben reestructurar las tablaspara hacer frente a estos cambios. Cuando las estructuras de las tablas cambian,también deben actualizarse todas sus dependencias (consultas, formularios,informes, código, etc.). Si se comprenden y prevén los cambios en el tiempo, sepodrá implementar un mejor diseño para minimizar los problemas.

3.2 Métodos de acceso

Los dispositivos que almacenan los datos, hay dos tipos: Soportes de Acceso Directo  a los datos (Ej.: discos). Son los másempleados. Soportes deAcceso Secuencial (Ej.: cintas magnéticas). Se suelen usaren copias de seguridad.

La forma de solicitar la información al disco. Existen dos métodos para ello: Modo Secuencial: Se lee la información de un fichero de registro en

registro teniendo que leer todos los que hay antes del que buscamos. Seemplea bien por deseo, bien por imposición del tipo de soporte queestamos usando. El acceso secuencial es recomendable cuando se quieretrabajar con muchos registros del fichero. Modo Directo: Se puede acceder a un registro si tener que leer todos

los anteriores (basta con un pequeño número de lecturas). Hay dosmaneras:

Page 47: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 47/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

41

I.  Cálculo : Cada región tiene una clave sobre la que se aplicaun cálculo que indica el lugar de grabación (Hashing).

II.  índices : existe un índice independiente o asociado alfichero en el cual se busca el registro y se nos indica donde

está.

Formas de almacenamiento físico

Memoria principal: Es el almacenamiento intermedio usado pos los datosque están disponibles para las operaciones del usuario. Aquí es donde reside laejecución del programa. Como los datos se necesitan por el programa paraejecutar sus funciones, se transmiten del almacenamiento secundario a lamemoria principal

Almacenamiento secundario: Para los sistemas de BD está compuesto por

lo general por el almacenamiento en disco y el almacenamiento en cintamagnética. El almacenamiento en disco es la forma principal de almacenamiento,aunque la cinta es menos costosa que el almacenamiento en disco, los registrosolamente pueden ser accedidos secuencialmente.

Factores de rendimiento del disco:

Tiempo de posicionamiento: Es el tiempo necesario para posicionar lascabezas de lectura/escritura sobre el cilindro deseado, desde suposicionamiento actual a una nueva dirección del cilindro.

Tiempo de activación de la cabeza: Es el tiempo necesario para activar una

cabeza de lectura/escritura

Retraso de rotación: El tiempo que necesita el disco para rotar el registrosolicitado bajo la cabeza de lectura escritura.

Razón de transferencia: La razón en la cual los datos se leen del discohacia la memoria principal, o equivalente, la razón en la cual los datos seescriben desde la memoria principal al disco.

Organización de Archivos y métodos de direccionamientoLos métodos de organización y direccionamiento de los datos sobre

dichos dispositivos facilitan el almacenamiento y las operaciones de E/S.Existen tres formas básicas de organización física de archivos sobre los

dispositivos de almacenamiento: Organización Secuencial, OrganizaciónSecuencial-Indexada y Organización directa.

Page 48: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 48/66

UNIDAD III / DEFINICION DEL ESQUEMA INTERNO

42

  Organización secuencial:Significa que los registros se almacenan adyacentemente unos a otros, de

acuerdo con la clave, como son el número de empleado, numero de cuenta, etc.Una implementación convencional organiza los registros en orden ascendentes

de los valores de la clave. Si deseamos acceder al décimo registro secuencial,generalmente se deberán leer los anteriores nueves.

  Secuencial-IndexadaConsiste en que los archivos están organizados secuencialmente; sin

embargo, es posible acceder directamente a los registros. Los registros sealmacenan en la secuencia física usual por la clave primaria, además se almacenaen el disco el índice de localización del registro.

  Organización directa:Se localiza un registro por su dirección, obtenida a partir del valor de una

clave de direccionamiento o por la posición relativa que ocupa el registro en elarchivo.

OBJETIVOS:

  Disminuir los tiempos de respuesta

  Minimizar el espacio de almacenamiento

  Evitar las reorganizaciones

  Proporcionar la máxima seguridad

  Optimizar el consumo de recursos

3.3 Herramientas para el diseño del esquema interno 

El diseño físico parte del esquema lógico y da como resultado un esquema físico. Unesquema físico es una descripción de la implementación de una base de datos en

memoria secundaria: las estructuras de almacenamiento y los métodos utilizados paratener un acceso eficiente a los datos. Por ello el esquema físico depende del SGBD

concreto y el esquema físico se expresa mediante un lenguaje de definición de datos.

Page 49: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 49/66

 

UNIDAD 4

DEFINICION DELESQUEMA EXTERNO

Objetivo:El alumno implementará el nivel de

vista en las base de datos como un

nivel mas de seguridad para lograr una

mayor integridad en los datos.

Page 50: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 50/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

44

En el nivel externo  se describen varios esquemas externos  o vistas de 

usuario . Cada esquema externo describe la parte de la base de datos que interesaa un grupo de usuarios determinados y ocultos a ese grupo el resto de la base dedatos. En este nivel se puede utilizar un modelo conceptual o un modelo lógico

para especificar los esquemas.

Una vista es como una ventana a través de la cual se puede consultar o cambiarinformación de la tabla a la que está asociada.

4.1 Estructura de datos (vistas) 

Las vistas tienen la misma estructura que una tabla: filas y columnas. La únicadiferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que serecuperan mediante una consulta a una vista se presentarán igual que los de una tabla.De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que esasí. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y

seleccionar datos en una vista. Aunque siempre es posible seleccionar datos de unavista, en algunas condiciones existen restricciones para realizar el resto de lasoperaciones sobre vistas.

Page 51: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 51/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

45

¿Por qué utilizar vistas? 

Las vistas pueden proporcionar un nivel adicional de seguridad. Porejemplo, en la tabla de empleados, cada responsable de departamento sólo

tendrá acceso a la información de sus empleados. La siguiente sentencia producela creación de la vista de los empleados del departamento de administración(cod_dep=100).

SQL> create view ampAdmin as vista2 select * from ep where cod_dep=100;

Las vistas permiten ocultar la complejidad de los datos. Una BD secompone de muchas tablas. La información de dos o más tablas puederecperarse utilizando una combinación de dos o más tablas, y estascombinaciones pueden llegar a ser muy confusas. Creando una vista como

resultado de la combinación se puede ocultar la complejidad al usuario. Lasvistas ayudan a mantener unos nombres razonables.

Creación de una Vista 

CREATE VIEW vista [({columna ,}+] AS consulta ;

La vista se crea con las columnas que devuelve una consulta. Si no nos importaque las columnas de la vista hereden los nombres de las columnas recuperadas en laconsulta no tenemos que especificarlos.

Hay dos tipos de vistas: Horizontales y verticales:

Las horizontales: son las que se forman de una consulta donde se toman todaslas columnas de la tabla a la que se hará la consulta.

Create view vistaisc as select * from alumnos where carrera=”ISC”;

Las verticales: son las que se forman de algunas columnas de la(s) tabla(s)donde se hace la consulta

Create view vistaisc as select matri, nombre, prom from alumnoswhere carrera=”ISC”;

Borrado de una Vista 

DROP VIEW vista ;

Page 52: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 52/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

46

Operaciones sobre Vistas

Consultas: La consultas sobre las vistas se tratan de igual modo que sobre lastablas.

Actualizaciones: La información puede ser actualizada en las vistas directamenteo a través de las tablas sobre las que se definen.

Existen algunas restricciones:

  Borrado de filas de una tabla a través de una vista

La vista se debe crear con filas de una sola tabla; sin utilizar lascláusulas GROUP BY y DISTINCT; y sin utilizar funciones de grupo oreferencias a pseudocolumnas (ROWNUM).

  Actualización de filas a través de una vista

La vista ha de estar definida según las restricciones anteriores yademás ninguna de las columnas a actualizar debe haber sido definidacomo una expresión.

  Inserción de filas en una tabla a través de una vista

Todas las restricciones y además todas las columnas obligatorias de latabla asociada deben estar presentes en la vista.

Vistas de más de una Tabla

Se pueden definir vistas sobre más de una tabla. Por ejemplo, sobre lacombinación de dos tablas. Podemos querer ver todos los datos de los empleados deldepartamento Administración.

SQL> create view depAdmin (cod_emp, nombre_emp, nombre_dep, dir)as select e.cod_emp, e.nombre, d.nombre, d.loc

from emp e, dep dwhere e.cod_dep=d.cod_dep and d.nombre='Administracion';

SQL> select * from depAdmin;

COD_EMP NOMBRE_EMP NOMBRE_DEP DIR---------- ---------- --------------- ----------

101 Cano Administracion Valladolid102 Roncal Administracion Valladolid103 Rueda Administracion Valladolid104 Martin Administracion Valladolid105 Sanz Administracion Valladolid106 Lopez Administracion Valladolid

6 rows selected.

Page 53: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 53/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

47

Ejemplo:

Consideremos de nuevo la tabla llamada CURSO, que contiene los siguientescampos:

Nombre del campo  Descripción 

NumC Número del curso, único para identificar cada curso

NombreC Nombre del curso, también es único

DescC Descripción del curso

Creditos Créditos, número de estos que gana al estudiante alcursarlo

Costo Costo del curso.

Depto Departamento académico que ofrece el curso.

Que contiene los siguientes datos:

NumC  NombreC  DescC  Creditos  Costo  Depto 

A01 Liderazgo Para públicoGeneral

10 100.00 Admón.

S01 Introducción a lainteligenciaartificial

Para ISC y LI 10 90.00 Sistemas.

C01 Construcción detorres

Para IC yArquitectura

8 0.00 Ciencias

B01 Situación actualy perspectivasde laalimentación y lanutrición

Para IB 8 80.00 Bioquímica

E01 Historiapresente yfuturo de la

energía solar

IE e II 10 100.00 Electromecánica.

S02 Tecnología OLAP Para ISC y LI 8 100.00 Sistemas

C02 Tecnología delconcreto y de lasEstructuras

Para IC 10 100.00 Ciencias

Page 54: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 54/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

48

B02 Metabolismo delípidos en elcamarón

Para IB 10 0.00 Bioquímica

E02 Los sistemas

eléctricos depotencia

Para IE 10 100.00 Electromecánica

S03 Estructura dedatos

Para ISC y LI 8 0.00 Sistemas

A01 Diseñobioclimático

ParaArquitectura

10 0.00 Arquitectura

C03 Matemáticasdiscretas

General 8 0.00 Ciencias

S04 Circuitos

digitales

Para ISC 10 0.00 Sistemas

S05 Arquitectura deComputadoras

Para ISC 10 50.00 Sistemas

I01 Base de DatosRelacionales

Para ISC y LI 10 150.00 Informática

Ejemplos: 

UNO: Crear una vista (tabla virtual), denominada CursosS, que contenga las filassolo correspondientes a cursos ofrecidos por el departamento Sistemas. La vista deberá

contener todas las columnas de la tabla CURSO, con la excepción de la columna Depto, lasecuencia, de izquierda a derecha de las columnas, deberá ser: NombreC, NumC,Creditos, Costo Y DescC.

CREATE VIEW CursosS AS SELECT NombreC,NumC,Creditos,Costo,DescC FROM CURSOWHERE  DescC=’Sistemas’; 

Observemos que después del nombre de la vista ponemos la sentencia AS, estopara definir la estructura de la vista, la estructura en si de la vista esta formada por laconsulta anteriormente vista utilizando la orden SELECT.

DOS: Crear una vista denominada CursosCaros, correspondientes a las filas de latabla CURSO, en donde la tarifa exceda de $150, las columnas de la vista deberán tenerlos nombres ClaveCurso, NombreCurso y CostoCaro.

CREATE VIEW CursosSCaros(ClaveCurso,NombreCurso,CostoCaro) As SELECTNumC,NombreC, Costo FROM Curso WHERE Costo > 150;

Page 55: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 55/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

49

Observamos que después del nombre de la vista CursosCaros ponemos losnombres que se nos pidieron tuvieran los campos de la vista(ClaveCurso,...), después serealiza la consulta correspondiente para generar el resultado deseado.

Visualizar las vistas

Creamos una tabla virtual que contiene los datos de las consultas que deseamos,ahora nos falta visualizar estos datos, para ello utilizamos la sentencia SELECT yrealizamos la consulta:

SELECT * FROM CursosCaros;

De esta consulta podemos observar que mostramos todos los campos que lavista contiene, aunque podemos visualizar solo alguno de ellos, también observamosque sustituimos el nombre de la vista por el de la tabla junto a la sentencia FROM, estoes por que una vista es una tabla virtual, pero guarda los datos como cualquier tabla

normal.

Eliminar una vista

Como si fuera una tabla normal, las vistas también pueden borrarse, para elloutilizamos la sentencia DROP VIEW. Estructura de la sentencia DROP VIEW.

DROP VIEW Nombre de la vista a borrar;

Ejemplo: Borrar la vista CursosCaros creada anteriormente.

DROP VIEW CursosCaros;

Page 56: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 56/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

50

CREATE VIEW Profesor_DSIC AS SELECT cod_pro, nombre, telefono FROM

Profesor WHERE cod_dep=’DSIC’; CREATE VIEW Asignatura_DSIC AS SELECT cod_asg, nombre, semestre,teoria, prac FROM Asignatura WHERE cod_dep=’DSIC’; CREATE VIEW Docencia_DSIC AS SELECT D.cod_pro, D.cod_asg, D.gteo,D.gprac FROM Asignatura A, Docencia D, Profesor PWHERE A.cod_asg = D.cod_asg AND P.cod_pro = D.cod_pro AND A.cod_dep= 'DSIC' AND P.cod_dep = 'DSIC';

4.2 Control de acceso 

La vista:  Describe los datos y sus relaciones que son de interés para una aplicación

dada

  Permiten a cada grupo de usuarios concentrarse sobre la parte que les

interesa del esquema conceptual

Page 57: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 57/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

51

  Garantiza la confidencialidad (un usuario sólo accede a la parte que le

interesa)

  Cada vista externa se define mediante un esquema externo (DDL externo)

que describe los datos y relaciones que son de interés para una aplicacióndada

  Pueden existir varias vistas externas compartidas

Los controles de acceso lo podemos lograr con las sentecias GRANT y REVOKEde la misma manera como se vio en la unidad 2.

Ejemplos:

Create view vistaisc as select * from alumnos where carrera=”ISC”;Grant selecto on ejemplo.vistaisc to jefeisc identified by “jefeisc” 

4.3 Herramientas del esquema externo

MySQL Workbench y es una herramienta que te permite diseñar de formavisual las bases de datos, facilitándote la tarea de trabajar con tablas y vistas.

Algunas de las características más interesantes de MySQL Workbench son:

  Edición de de diagramas basada en Cairo, con posibilidad de realizar una

salida en los formatos como OpenGL, Win32, X11, Quartz, PostScript,PDF…

  Proporciona una representación visual de las tablas, vistas,procedimientos y funciones almacenadas y claves foráneas.

  Permite acceso a bases de datos e ingeniería inversa de las mismas paracrear los SQL de creación

  Ofrece sincronización con la base de datos y el modelo.  Permite generar los scripts SQL a partir del modelo creado.  Ofrece una arquitectura extensible.  Tiene soporte para exportar los datos como script SQL CREATE.  Permite importar modelos de DBDesigner4.

  Ofrece soporte completo a las características de MySQL 5.

MySQL Workbench es totalmente gratuito en su versión Community (aunqueexiste una versión comercial con algunas funcionalidades extras) y estádisponible para todas las plataformas (Windows, Linux y Mac OS).

Page 58: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 58/66

UNIDAD IV / DEFINICION DEL ESQUEMA EXTERNO

52

Page 59: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 59/66

 

UNIDAD 5

PROCESOS PARA ELMANTENIMEINTO DE UNA

BASE DE DATOS

Objetivo:El alumno implementará el nivel de

vista en las base de datos como un

nivel mas de seguridad para lograr una

mayor integridad en los datos.

Page 60: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 60/66

UNIDAD V / PROCESOS PARA EL MANTENIMIENTO DE UNA BASE DEDATOS

54

5.1 Depuración

El debugging o depuración es el proceso metodológico para encontrar yreducir bugs (errores) o defectos en un programa informático o en una pieza de

hardware.

La tarea de depuración de un error de software, suele requerir los siguientespasos.

  Reconocer que ese error existe (un programa puede contener errores que jamás 

serán detectados).

  Aislar la fuente del error.

  Identificar la causa del error.

  Determinar una solución para el error.

  Aplicar la solución.

  Probar el programa .

En general, las tareas de la depuración de errores, suelen ser engorrosas yagotadoras. Existen aplicaciones que permiten ayudar al programador en estastareas, pero es la habilidad del mismo el factor más determinante para laefectividad y eficiencia del proceso de depuración.

Los programas para la depuración son llamados depuradores o debugger(también es el nombre que recibe el programador que realiza esta tarea).Permiten ejecutar un programa, hacer pausas, volver a comenzarlo, ejecutarlopor partes, ver o cambiar los valores de las variables, etc.

5.1.1 Medición del desempeño y uso de estadísticas

Es responsabilidad del DBA organizar el sistema de modo que se obtengael desempeño que sea "mejor para la empresa", y realizar los ajustes apropiadoscuando cambien los requerimientos.

Es necesario reorganizar la base de datos (descargarla y volverla acargar) en forma periódica con el fin de garantizar que los niveles de desempeño

sigan siendo aceptables. Los datos obtenidos del desempeño se comparan conaquellos datos esperados.

Esta razón proporciona los factores de multiprogramación, Mn, para cadauno de los procesos básicos h que son parte de los cálculos de la base de datos.En la práctica estos factores pueden variar de 1 a 0.1.

Page 61: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 61/66

UNIDAD V / PROCESOS PARA EL MANTENIMIENTO DE UNA BASE DEDATOS

55

Un sistema piloto que sea el modelo de varias de las transacciones dearchivo dentro del medio ambiente de cómputo existente puede proporcionarestimaciones útiles de desempeño mediante un modesto esfuerzo. Los datosobtenidos de desempeño se compararán con aquellas esperadas en la operación

aislada, que se obtiene rápidamente. La razón proporciona los factores demultiprogramación, Mn, para cada uno de los procesos básicos h que son partede los cálculos de la base de datos. En la práctica estos factores pueden variar de1 a 0,1.

Mh = desempeño medido de hdesempeño calculado de h

Tales pruebas no requieren la existencia de la base de datos completa ypodría ser que esta ni siquiera existiera el estudio piloto consiste en la ejecución

de una secuencia adecuada de operaciones aleatorias o secuenciales de lectura oescritura, junto con una cantidad equivalente del uso de la CPU. A menudo esposible escribir y ejecutar un programa que imite la operación propuesta, en elsistema real que se va a utilizar, con el costo del esfuerzo de unos cuantos días.

Desde luego, la disponibilidad del sistema es sumamente importante y laprueba realizarse durante periodos normales y de uso intenso de las funcionescon las que la base de datos compartirá los recursos.

Tal prueba no es equivalente a un estudio completo de simulación en quetodos los cálculos, así como el hardware, deben parametrizarse y simularse.

ESTADISTICAS DE UTILIZACIÓN DE DSIPOSITIVOS.- Tiempos de porcentaje deactividad de procesadores, canales, controladores y discos. Es conveniente tener tantovalores promedios como valores que pertenezcan a los periodos de mayor actividad deoperación del sistema.

ESTADISTICAS DE ARCHIVO.- Una matriz de procesos del usuario, comparadacon actividades de archivo, es la medida básica. Las razones relativas de tipos de acceso,tales como recuperación, obtención del siguiente registro y actualización, sonimportantes en la toma de decisiones acerca de la organización del archivo. Otra medidaes la densidad de archivo.

ESTADISTICA DE UTILIZACIÓN DE REGISTROS .- La frecuencia con la que seefectúan accesos a los registros para lectura o actualización proporciona una medidaque puede emplearse para lograr optimización en sistemas en los que los registrosestán encadenados. Las fechas y los momentos del acceso y la actualización últimos sonimportantes para mantener la integridad, como lo es la identificación del proceso queactualizo los registros.

Page 62: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 62/66

UNIDAD V / PROCESOS PARA EL MANTENIMIENTO DE UNA BASE DEDATOS

56

ESTADISTICAS DE UTILIZACIÓN DE ATRIBUTOS .- La frecuencia con la que losvalores atributo se solicita, actualización, utilizan como llaves o se emplean comoargumentos posteriores de búsqueda, proporciona los datos para la selección óptima demembrecía.

5.2 Reorganización física y lógica

Cuando las áreas de derrama se derraman a su vez, o antes es necesaria unareorganización del archivo. También puede necesitarse la reorganización cuando,debido la creación de diversas cadenas, los tiempos de recuperación o de procesamientoserial se vuelven excesivos.

Tal reorganización consiste en leer el archivo en forma en que se utilizaría alrealizar el procesamiento en serie y escribirlo de nuevo, dejando fuera todos losregistros que estén marcados como eliminados y escribiendo todos los registrosrestantes, nuevos y viejos, secuencialmente, en las áreas principales del archivo nuevo.

Durante este procesamiento los programas de reorganización crearán nuevos índicescon base en los nuevos valores.

La frecuencia de esta reorganización depende de la actividad de insercióndentro del archivo. En la práctica se encuentran intervalos de tiempo que varían de undía a un año entre corridas de reorganización. Ya que una corrida de reorganizaciónpuede requerir mucho tiempo, generalmente este se realiza antes que el archivo esterealmente lleno, para evitar problemas en las épocas de mucha actividad.

5.2.1 Consideraciones para la reorganización física

Las reorganizaciones físicas son necesarias para mejorar el rendimiento, añadir

una nueva estructura de acceso, agilizar las operaciones de obtención y actualización,disminuir los tiempos de respuesta, minimizar el espacio de almacenamiento yoptimizar el consumo de recursos.

5.2.2 Consideraciones para la reorganización lógica

Las reorganizaciones lógicas pueden modificar el esquema conceptual,pero no alterar el esquema externo ni los programas de aplicación; puede ser unorden de visualización en las vistas.

5.3 Respaldos y recuperación

El DBA debe definir y poner en práctica un plan de recuperaciónadecuado que incluya una descarga o vaciado periódico de la base de datos en un

Page 63: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 63/66

UNIDAD V / PROCESOS PARA EL MANTENIMIENTO DE UNA BASE DEDATOS

57

medio de almacenamiento de respaldo y procedimientos para volver a cargar labase de datos a partir del vaciado más reciente.

El respaldo y recuperación consiste en contar con un mecanismo quepermiten la fácil recuperación de los datos en caso de ocurrir fallos en el sistema

de la base de datos.

El objetivo del concepto de recuperación es el de proteger la base de datoscontra fallas lógicas y físicas que destruyan los datos en todo o en parteindependientemente de la naturaleza de las fallas estas pueden afectarlos aspectos de almacenamiento de la base de datos como son:

  Fallas que provocan la pérdida de la memoria volátil.  Fallas que provocan la pérdida del contenido de la memoria secundaria.

En un sistema de base de datos, recuperación significa, restaurar la basede datos a un estado que se sabe que es correcto, después de una falla queprovoca que se considere que el estado actual es incorrecto. Podemos tener laseguridad de que la base de datos es recuperable, si aseguramos que cualquierparte de la información que contiene, puede ser reconstruida, a partir de otrainformación que se encuentra almacenada redundantemente en algún lugar delsistema.

A continuación se presentaran una serie de pasos que podrán seguirsecuando se presente una falla en el sistema y se desee recuperar la información:

Detección del error.- El proceso de recuperación se inicia al detectar la existenciade un error. Es posible distinguir una variedad de puntos de entrada en le proceso derecuperación. Se considerarán fallas de sistemas detectadas por falta de acción delsistema o por verificaciones irrecuperables de redundancia y salida incorrectaobservada por un usuario.

Determinación de la fuente del error.- para decidir cuál es la mejor accióncorrectora es necesario determinar la extensión del daño. Desde luego este esfuerzo esmuy relacionado con la determinación del tiempo y la causa del error. Después de unacaída o cuando el procesamiento sea interrumpido debido a una señal de error, esnecesario determinar tantos aquellas áreas del archivo de datos que sean sospechosascomo cuál fue la transacción que no se concluyo.

Ubicación de errores secundarios.- cuando se ha detectado un error que provocóuna modificación inadecuada a un archivo un rastreo a través de las listas de actividadencontrara aquellas transacciones que emplearon el bloque correcto. Entonces esposible volver a introducir automáticamente el bloque correcto de las transaccionesafectadas y producir resultados correctos. Si se actualizaron bloques mediante

Page 64: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 64/66

Page 65: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 65/66

UNIDAD V / PROCESOS PARA EL MANTENIMIENTO DE UNA BASE DEDATOS

59

se desea actualizar esta versión a la 9, por lo que se tiene que respaldar lainformación y migrarlo a la versión 9 de Oracle) o cuando se cambia de unmanejador a otro (supongamos que actualmente se trabaja con S QL Server y sedesea migrar a otro manejador como Oracle, entonces, se tiene que migrar la

tablas de la base de datos de SQL a tablas de Oracle).

5.4.1 Consideraciones para la migración de datos

Algunos datos se usan con mucha frecuencia y otros solo raramente. Es deseablealmacenar los datos de uso frecuente de, manera que resulte fácil Y rápido acceder aellos. Los datos de uso ocasional se almacenarán, en cambio, de manera más económica.En una oficina, la información que se usa diariamente se usa en los archivadores de lassecretarías; la información que solo se consulta accidentalmente se guardaráprobablemente en el sótano, de modo no estorbe y su almacenamiento no cuestemucho. El equivalente del sótano en la computadora podría ser la cinta magnética,

mientras que los datos de uso frecuente se hallarán en discos o tambores de modo quese los pueda leer siempre en una fracción de segundo. Toda base de datos más ó menoscompleja tendrá múltiples niveles de facilidad de acceso.

Algunos datos almacenados, por ejemplo la música gozan de una popularefímera. En la bolsa por ejemplo debe surgir repentinamente un gran interés porobtener información acerca de accione que el mes pasado no tenían prácticamentemovimiento alguno. En las aerolíneas hay un gran interés por los registros de un vuelo ysus pasajeros los últimos días anteriores al despegue. Diez meses antes sólo alguna queotra persona se interesaba por ese vuelo. Pero dos días después del despegue se haperdido todo interés en los datos pertinentes, aunque éstos deben ser conservados dealguna manera.

A medida que cambia la popularidad de un conjunto de datos, será convenientemudarlos dentro del almacén a posiciones más o menos accesibles, de acuerdo con suactividad. Dos días después de iniciado un vuelo, los registros del vuelo y sus pasajerospasarán del disco del tiempo real a una cinta de archivo. En algunos casos no se mudanlos datos, pero sí se modifican los índices que se utilizan para direccionarlos, de maneraa que puedan ser alcanzados rápidamente. Este proceso de ajustar el almacenamientode los datos de acuerdo con su popularidad se llama migración de los datos.

En algunos sistemas se hace automáticamente. En otros, la operación se lleva acargo de los programadores de sistema o del administrador de datos. En ocasiones se leconsidera como parte del proceso de afinación de la base de datos.

Page 66: Antologia de Admin is Trac Ion de Base de Datos

8/6/2019 Antologia de Admin is Trac Ion de Base de Datos

http://slidepdf.com/reader/full/antologia-de-admin-is-trac-ion-de-base-de-datos 66/66

 

BIBLIOGRAFIA

Fundamentos De Base De Datos. Silberschaez,Korth,SudarshanCuarta Edición, Mc Graw hill

Mysql para Windows Y Linux. Cesar PérezSegunda Edición, Alfa Omega

Ingeniería de Software. PressmanQuinta edición, Mc Graw Hill

Referencias

Mysql con clase http://mysql.conclase.net/curso/index.php  Mysql Hispano http://www.mysql-hispano.org/  

Mysql http://www.mysql.com/  

Tutorial de: Administración de Bases de Datos.  

 Instituto Tecnológico de La Paz.  http://www.itl.edu.mx / tutoriales /  

Tutorial de: Administración de Bases de Datos. Instituto Tecnológico de Veracruz. http://www.itver.edu.mx/tutoriales/  

Tutorial de: Ingeniería de Software . http://www.monografias .com/trabajos5/inso/inso2.shtml  

Mysql con php http://mx.php.net/manual/es/book.mysql.php