jueves, 20 de abril de 2023

Integridad referencial

La integridad en una base de datos es la corrección y exactitud de la información contenida. Además de conservar la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos.



Condiciones de la Integridad

Las condiciones que garantizan la integridad de los datos pueden ser de dos tipos:

Las restricciones de integridad de usuario: son condiciones específicas de una base de datos concreta; son las que se deben cumplir en una base de datos articular con unos usuarios concretos, pero que no son necesariamente relevantes en otra Base de Datos.
Las reglas de integridad de modelo: son condiciones propias de un modelo de datos, y se deben cumplir en toda base de datos que siga dicho modelo.

Los SGBD deben proporcionar la forma de definir las restricciones de integridad de usuario de una base de datos y una vez definida, debe velar por su cumplimiento. Las reglas de integridad del modelo, en cambio, no se deben definir para cada base de datos concreta, porque se consideran preestablecidas para todas las base de datos de un modelo. Un SGBD de un modelo determinado debe velar por el cumplimiento de las reglas de integridad preestablecidas por su modelo.

Reglas de Integridad

Regla de integridad de unicidad de la clave primaria
La regla de integridad de unicidad está relacionada con la definición de clave primaria que establece que toda clave primaria que se elija para una relación no debe tener valores repetidos por lo que el conjunto de atributos CP es la clave primaria de una relación R, entonces la extensión de R no puede tener en ningún momento dos tuplas con la misma combinación de valores para los atributos de CP.


Regla de integridad de entidad de la clave primaria

La regla de integridad de entidad de la clave primaria dispone que los atributos de la clave primaria de una relación no pueden tener valores nulos. Esta regla es necesaria para que los valores de las claves primarias puedan identificar las tuplas individuales de las relaciones. Si las claves primarias tuviesen valores nulos, es posible que algunas tuplas no se pudieran distinguir. Un SGBD relacional tendrá que garantizar el cumplimiento de esta regla de integridad en todas las inserciones y en todas las modificaciones que afecten a atributos que pertenecen a la clave primaria de la relación.
Regla de integridad referencial

La regla de integridad referencial está relacionada con el concepto de clave foránea, lo que determina que todos los valores que toma una clave foránea deben ser valores nulos o valores que existen en la clave primaria que referencia. La necesidad de esta regla es debido a que las claves foráneas tienen por objetivo establecer una conexión con la clave primaria que referencian. Si un valor de una clave foránea no estuviese presente.

Restricción

La restricción en caso de borrado, consiste en no permitir borrar una tupla si tiene una clave primaria referenciada por alguna clave foránea y la restricción en caso de modificación consiste en no permitir modificar ningún atributo de la clave primaria de una tupla si tiene una clave primaria referenciada por alguna clave foránea.

Actualización en cascada

La actualización en cascada consiste en permitir la operación de actualización de la tupla, y en efectuar operaciones compensatorias que propaguen en cascada la actualización a las tuplas que la referenciaban; se actúa de este modo para mantener la integridad referencial. La actualización en cascada en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave primaria referenciada, y borrar también todas las tuplas que referencian t y la actualización en cascada en caso de modificación consiste en permitir la modificación de atributos de la clave primaria de una tupla t que tiene una clave primaria referenciada, y modificar del mismo modo todas las tuplas que referencian t.

Anulación

La anulación consiste en permitir la operación de actualización de la tupla y en efectuar operaciones compensatorias que pongan valores nulos a los atributos de la clave foránea de las tuplas que la referencian; esta acción se lleva a cabo para mantener la integridad referencial. Los SGBD relacionales permiten establecer que un determinado atributo de una relación no admite valores nulos, sólo se puede aplicar la política de anulación si los atributos de la clave foránea sí los admiten. Más concretamente, la anulación en caso de borrado consiste en permitir el borrado de una tupla t que tiene una clave referenciada y, además, modificar todas las tuplas que referencian t, de modo que los atributos de la clave foránea correspondiente tomen valores nulos y la anulación en caso de modificación consiste en permitir la modificación de atributos de la clave primaria de una tupla t que tiene una clave referenciada y, además, modificar todas las tuplas que referencian t, de modo que los atributos de la clave foránea correspondiente tomen valores nulos.

Regla de integridad de dominio

La regla de integridad de dominio está relacionada con la noción de dominio. Esta regla establece dos condiciones.

La primera condición consiste en que un valor no nulo de un atributo Ai debe pertenecer al dominio del atributo Ai; es decir, debe pertenecer a dominio(Ai). Esta condición implica que todos los valores no nulos que contiene la base de datos para un determinado atributo deben ser del dominio declarado para dicho atributo.

La segunda condición sirve para establecer que los operadores que pueden aplicarse sobre los valores dependen de los dominios de estos valores; es decir, un operador determinado sólo se puede aplicar sobre valores que tengan dominios que le sean adecuados.

Fuente: http://www.ecured.cu/Integridad_de_las_Bases_de_Datos 



martes, 28 de marzo de 2023

MINI MANUAL PARA EL USO DE DB-DESIGNER 4


Consulta el siguiente pequeño MANUAL para que realices la práctica 5 de la guía pedagógica

EJERCICIOS Y SOLUCIONES

PROBLEMA 1 DE LA GUÍA PEDAGÓGICA:



SOLUCIÓN:



PROBLEMA 2 DE LA GUÍA PEDAGÓGICA:


SOLUCIÓN:



PROBLEMA 3 DE LA GUÍA PEDAGÓGICA:


SOLUCIÓN:



PROBLEMA DE OLIMPIADAS:

  Las sedes olímpicas se dividen en complejos deportivos. Los complejos deportivos se subdividen en aquellos en los que se desarrolla un único deporte y en los polideportivos. 

Los complejos polideportivos tienen áreas designadas para cada deporte con un indicador de localización (ejemplo: centro, esquina NE, etc.). 

Un complejo tiene una localización, un jefe de organización individual y un área total ocupada. 

Los dos tipos de complejos (deporte único y polideportivo) tendrán diferentes tipos de información. Para cada tipo de sede, se conservará el número de complejos junto con su presupuesto aproximado. 

Cada complejo celebra una serie de eventos (ejemplo: la pista del estadio puede celebrar muchas carreras distintas.). 

Para cada evento está prevista una fecha, duración, número de participantes, número de comisarios. Una lista de todos los comisarios se conservará junto con la lista de los eventos en los que esté involucrado cada comisario ya sea cumpliendo la tarea de juez u observador. Tanto para cada evento como para el mantenimiento se necesitará cierto equipamiento (ejemplo: arcos, pértigas, barras paralelas, etc).




SOLUCIÓN:










sábado, 25 de marzo de 2023

B. Respaldo de datos




Hay ocasiones donde es necesario tener el “código” de nuestra base de datos, ya sea para hacer un respaldo, para migrar la BD a otro servidor

El comando mysqldump proporciona una manera conveniente para respaldar datos y estructuras de tablas. Hay que notar que mientras el comando mysqldump no es el método más eficiente para crear respaldos, éste ofrece un medio conveniente para copiar datos y estructuras de tablas que puede ser usado para “poblar” otro servidor SQL, no importando si se trata, o no de un servidor MySQL. El comando mysqldump puede ser usado para crear respaldos de todas las bases de datos, algunas bases de datos, sólo una de ellas, o incluso ciertas tablas de una base de datos dada. En esta sección se ilustra la sintaxis involucrada con varios posibles escenarios, seguida con unos pocos ejemplos. 

Desde una ventana de comandos nos posicionamos en la carpeta “bin” de nuestro directorio mysql y podemos usar las siguientes instrucciones:


Para ver las instrucciones DESCARGA la presentación.


El archivo de respaldo lo encontraran en su computadora en la siguiente ubicación y ese lo podrán copiar a su memoria:



viernes, 24 de marzo de 2023

1.2 B. Normalización del modelo relacional, partiendo de una relación universal.


Cuando se diseña una base de datos mediante el modelo relacional, al igual que ocurre en otros modelos de datos, tenemos distintas alternativas, es decir, podemos obtener diferentes esquemas relacionales y no todos son equivalentes, ya que algunos van a representar la realidad mejor que otros.

Es necesario conocer qué propiedades debe tener un esquema relacional para representar adecuadamente una realidad y cuáles son los problemas que se pueden derivar de un diseño inadecuado.

La teoría de la Normalización es un método objetivo y riguroso que se aplica en el diseño de bases de datos relacionales.

Cuando estudiamos la estructura del modelo relacional, nos dimos cuenta que la base de datos puede representarse por medio de un conjunto de objetos (dominios y relaciones) y de un conjunto de reglas de integridad.

El esquema relacional puede obtenerse de dos formas distintas:

  • Directamente a partir de la observación de nuestro universo del discurso, en donde especificamos conjuntos de atributos, relaciones y restricciones que corresponden a los observados en el mundo real.

  • Realizando el proceso de diseño en dos fases, primero el diseño conceptual (E/R) obteniendo el esquema conceptual y posteriormente transformar éste a un esquema relacional, siguiendo algunas reglas generales, que fueron dadas anteriormente.

Algunos problemas que se pueden presentar son:

  • Incapacidad para almacenar ciertos hechos
  • Redundancias y por tanto, posibilidad de incoherencias
  • Ambigüedades
  • Pérdida de información 
  • Pérdida de dependencias funcionales, es decir, ciertas restricciones de integridad que dan lugar a interdependencias entre los datos.
  • Aparición en la BD de estados no válidos, es decir, anomalías de inserción, borrado y modificación.


Primera forma normal

Se dice que una tabla se encuentra en primera forma normal (1NF) si y solo si cada uno de los campos contiene un único valor para un registro determinado. Supongamos que deseamos realizar una tabla para guardar los cursos que están realizando los alumnos de un determinado centro de estudios, podríamos considerar el siguiente diseño:


Visualmente es un tabla, pero no una tabla relacional (lo que en terminología de bases de datos relacionales se llama relación). No cumple la primera forma normal. Lo cumpliría si:


Segunda forma normal.

La segunda forma normal compara todos y cada uno de los campos de la tabla con la clave definida. Si todos los campos dependen directamente de la clave se dice que la tabla está es segunda forma normal (2NF).

Supongamos que construimos una tabla con los años que cada empleado ha estado trabajando en cada departamento de una empresa:


Tomando como punto de partida que la clave de esta tabla está formada por los campos código de empleado y código de departamento, podemos decir que la tabla se encuentra en primera forma normal, por tanto vamos a estudiar la segunda:
  1. El campo nombre no depende funcionalmente de toda la clave, sólo depende del código del empleado.
  2. El campo departamento no depende funcionalmente de toda la clave, sólo del código del departamento.
  3. El campo años si que depende funcionalmente de la clave ya que depende del código del empleado y del código del departamento (representa el número de años que cada empleado ha trabajado en cada departamento)
Por tanto, al no depender todos los campos de la totalidad de la clave la tabla no está en segunda forma normal, la solución es la siguiente:



Podemos observar que ahora si se encuentras las tres tablas en segunda forma normal, considerando que la tabla A tiene como índice el campo Código Empleado, la tabla B Código Departamento y la tabla C una clave compuesta por los campos Código Empleado y Código Departamento.


Ejemplo:


Suponiendo que el DNI y el número de curso formen una clave principal para esta tabla, sólo la nota tiene dependencia funcional completa. El nombre y los apellidos dependen de forma completa del DNI. La tabla no es 2FN, para arreglarlo:


Tercera forma normal.

Se dice que una tabla está en tercera forma normal si y solo si los campos de la tabla dependen únicamente de la clave, dicho en otras palabras los campos de las tablas no dependen unos de otros. Tomando como referencia el ejemplo anterior, supongamos que cada alumno sólo puede realizar un único curso a la vez y que deseamos guardar en que aula se imparte el curso:


Estudiemos la dependencia de cada campo con respecto a la clave código:

  • Nombre depende directamente del código del alumno.
  • Curso depende de igual modo del código del alumno.
  • El aula, aunque en parte también depende del alumno, está más ligado al curso que el alumno está realizando.


Por esta última razón se dice que la tabla no está en 3NF. La solución sería la siguiente:


Una vez conseguida la segunda forma normal, se puede estudiar la cuarta forma normal.


La Provincia depende funcionalmente del código de provincia, lo que hace que no esté en 3FN. El arreglo sería:




EJERCICIOS DE ENTIDAD - RELACIÓN

EJERCICIO 1 

 A partir del siguiente enunciado se desea realiza el modelo entidad-relación. 

 Una empresa vende productos a varios clientes. 

Se necesita conocer los datos personales de los clientes (nombre, apellidos, curp, dirección y fecha de nacimiento). Cada producto tiene un nombre y un código, así como un precio unitario. 

Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios clientes. Los productos son suministrados por diferentes proveedores. 

Se debe tener en cuenta que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el curp, nombre y dirección. 

 EJERCICIO 2 

 A partir del siguiente enunciado se desea realiza el modelo entidad-relación. Se desea informatizar la gestión de una tienda informática. La tienda dispone de una serie de productos que se pueden vender a los clientes. 

De cada producto informático se desea guardar el código, descripción, precio y número de existencias. 

De cada cliente se desea guardar el código, nombre, apellidos, dirección y número de teléfono. 

 Un cliente puede comprar varios productos en la tienda y un mismo producto puede ser comprado por varios clientes. 

Cada vez que se compre un artículo quedará registrada la compra en la base de datos junto con la fecha en la que se ha comprado el artículo. 

 La tienda tiene contactos con varios proveedores que son los que suministran los productos. 

Un mismo producto puede ser suministrado por varios proveedores. De cada proveedor se desea guardar el código, nombre, apellidos, dirección, provincia y número de teléfono. 

 EJERCICIO 3 

 A partir del siguiente supuesto diseñar el modelo entidad-relación:

Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos: 

 La empresa dispone de una serie de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada coche. 

 Los datos que interesa conocer de cada cliente son el CURP, nombre, dirección, ciudad y número de teléfono: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente cuando un cliente se da de alta en ella. 

Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente. 

El concesionario también se encarga de llevar a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa automáticamente por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. 

Los coches pueden pasar varias revisiones en el concesionario. 

EJERCICIO 4 

A partir del siguiente enunciado se desea realizar el modelo entidad-relación:

Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el curp, nombre, teléfono, dirección, salario y población en la que vive. 

De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un camionero. 

De las provincias a las que llegan los paquetes interesa guardar el código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. 

Sin embargo, a una provincia pueden llegar varios paquetes. De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo, tipo y potencia. 

Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser conducido por varios camioneros. 

EJERCICIO 5 

A partir del siguiente supuesto diseñar el modelo entidad-relación: 

La clínica “SAN PATRÁS” necesita llevar un control informatizado de su gestión de pacientes y médicos. 

De cada paciente se desea guardar el código, nombre, apellidos, dirección, población,provincia, código postal, teléfono y fecha de nacimiento. 

De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital. 

Cada ingreso que realiza el paciente queda registrado en la base de datos. De cada ingreso se guarda el código de ingreso (que se incrementará automáticamente cada vez que el paciente realice un ingreso), el número de habitación y cama en la que el paciente realiza el ingreso y la fecha de ingreso. 

Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital.

sábado, 18 de marzo de 2023

Enlazar la base de datos de mysql con Access






A continuación se muestra el procedimiento para enlazar una base de datos mysql con la aplicación de Microsoft Access:


Descarga la información AQUÍ

1.3 A Instalación y configuración del Sistema Gestor de Bases de Datos.

MySQL es la base de datos Open Source más popular. Su continuo desarrollo y su creciente popularidad está haciendo de MySQL un competidor cada vez más directo de gigantes en la materia de las bases de datos como Oracle.

MySQL es un sistema de administración de bases de datos (Database Management System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una aplicación que permite gestionar archivos llamados de bases de datos

Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas relacionales orientados a objetos. MySQL, como base de datos relacional, utiliza múltiples tablas para almacenar y organizar la información.
MySQL fue escrito en C y C++ y destaca por su gran adaptación a diferentes entornos de desarrollo, permitiendo su ínter actuación con los lenguajes de programación más utilizados como PHP, Perl y Java y su integración en distintos sistemas operativos tales como, Windows(en casi todas sus versiones), Linux, MAC OS X, Solaris, OS/2, UNIX.

También es muy destacable, la condición de Open Source de MySQL, que hace que su utilización sea gratuita e incluso se pueda modificar con total libertad, pudiendo descargar su código fuente. Esto ha favorecido muy positivamente en su desarrollo y continuas actualizaciones, para hacer de MySQL una de las herramientas más utilizadas por los programadores orientados a Internet.
Instalación del Sistema Gestor de Bases de Datos.

A continuación se muestra la correcta instalación y configuración de MySQL versión 5.0:


En el momento de inicializar el ejecutable de MySQL esta es la ventana principal









Al dar siguiente o next nos mostrara la siguiente
ventana:
  







En esta ventana escogemos cualquier
opción para el tipo de usuario según lo

necesitado, luego si escogemos típica o

completa no muestra la siguiente

ventana  









En el momento de pasar a esta opción empieza la

instalación del componente.   










  • Después de terminar la instalación nos primaria de archivos utilizados por mysql nos toca la parte de configuración de dicho programa los cuales nos permite el registro del programa de tres formas distintas 
  • Para la primera opción nos muestra esta ventana la cual pide los datos de email y password En caso de ser la segunda opciones coloca estos datos de una vez




En caso de la tercera opción nos da de una sola vez la primera parte de configuración finalizada para luego entrar a la segunda parte de configuración


  


En este momento entra a la segunda parte de la configuración de MySQL la cual se muestra a continuación:

Instancia del servidor en las cuales están detalladas y estándar.  




En esta parte seleccionamos el tipo de servidor a utilizar entre ellos están Developer machine que utiliza los mínimos recursos para MySQL Server machine que utiliza los recursos de forma media para MySQL Dedicated MySQL server machine que utiliza toda la memoria necesaria para sus operaciones en MySQL (es utilizada para cliente servidor)




En esta opción escogemos la forma de trabajo con MySQL y son dos en ventana y en consola También el tipo de lenguaje a utilizar para no tener inconveniente con la plataforma de trabajo Y también la clave del root de MySQL al dar siguiente no muestra la plataforma de instalación y verificación de archivos y tipos y procede a instalarlos 


  

      
Verifica si fue configurada adecuadamente y pasa al finalizar la instalación luego podemos buscar el programa en el icono de Windows y todos los programas y MySQL y encontraremos el ejecutable de dicho programa.

 Entorno de trabajo.
Conectarse al y desconectarse del servidor

Para conectarse al servidor, generalmente se le porporcionará a mysql un nombre de usuario y una contraseña. Si el servidor se está ejecutando en un ordenador distinto a donde está estableciendo la conexión, también se deberá especificar el nombre de host.

Consulte con su administrador para saber los parámetros de conexión (nombre de usuario, contraseña y host) que debe emplear. Una vez que conozca los parámetros apropiados, debería poder conectarse de este modo:



Si la contraseña es correcta, aparecerá lo siguiente:


El prompt anuncia que mysql está listo para procesar comandos.

Después de haberse conectado, puede desconectarse en cualquier momento escribiendo QUIT (o \q) en el prompt mysql>

La siguiente tabla muestra cada uno de los indicadores que podrá ver y sintetiza lo que dicen acerca del estado en que se encuentra mysql:


Prompt
Significado
mysql>
Listo para un nuevo comando.
    ->
Esperando la siguiente línea en un comando de múltiples líneas.
    '>
Esperando la siguiente línea, se encuentra abierta una cadena que comienza con apostrofo (''').
    ">
Esperando la siguiente línea, se encuentra abierta una cadena que comienza con comillas dobles ('"').
    `>
Esperando la siguiente línea, se encuentra abierta una cadena que comienza con tilde ('`').
   /*>
Esperando la siguiente línea, se encuentra abierto un comentario que comienza con /*.







Integridad referencial

La integridad en una base de datos es la corrección y exactitud de la información contenida. Además de conservar la seguridad en un sis...