Está en la página 1de 44

Base de Datos

Unidad:

Introducción a Base de Datos,


integridad y Redundancia
Pre(S02), CGT(S1)

Docente: JABS
Logro
Al término de la unidad, el estudiante comprende el uso de una
base de datos dentro del diseño e implementación de un sistema
empresarial usando el motor de base de datos MySql
Importancia
Continuaremos un caso completo desde el diseño de un
software hasta su funcionamiento. Lo anterior ayudará al
estudiante a ubicar las labores que deben hacerse para diseñar y
utilizar una base de datos
Contenido general

• Demostración de un caso parte 2


• Integridad y Redundancia de datos
• Llaves primarias y foráneas
• Dependencia Funcional
Demostración de caso
completo parte 2
Recordando el Caso de automatización
de ventas
En una tienda mayorista, los clientes seleccionan la mercadería
que quieren comprar. Al terminar se la entregar la encargada
del almacén para que las registre a fin de vendérselas.
Recordando el Caso de automatización
de ventas
Luego de validar la mercadería, la encargada de almacén le crea
una guía de remisión que es un documento que detalla los
articulo que se llevará, tal que evitará que el gobierno lo
sancione si es que lo intervienen en el camino.
Recordando el Caso de automatización
de ventas
Después, el cajero, que pertenece al departamento de ventas,
genera una factura usando los datos de la guía, a los que le
agregará valor en soles de la mercadería comprada. Este
documento es necesario para demostrar ante el gobierno que
hubieron gastos por compras.
Recordando el Caso de automatización
de ventas
El cliente paga el valor de la factura al cajero del área de ventas.

Finalmente el encargado del almacén entrega al cliente la


mercadería, la guía de remisión, la factura y éste se retira.
Recordando el Caso de automatización
de ventas
El dueño de la empresa le pide que automatice mediante un
software solamente la generación de la guía de remisión y de la
factura, es decir que la selección, la entrega y el cobro
quedarán de manera manual.
Recordando el Caso de automatización
de ventas
Solución del caso parte 2

Se recomienda revisar previamente la parte 1.

Deberá descargar el aula virtual el aplicativo CasoVentas2.exe


en una carpeta. Al terminar la descarga ejecútelo.

Adicionalmente debe ejecutar el Mysql. En la presentación


anterior se enseñó como instalar ese SGBD. Debe tener las
credenciales para ingresar, es decir el usuario y la contraseña.

Siga las iteraciones de diseño e implementación a continuación


Diseño e implementación v2.1
No
1. Analizar caso: Cambia
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.
Diseño e implementación v2.1
Cambio
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.
Diseño e implementación v2.1
Cambio
Diseño e implementación v2.1
Cambio
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.

Significado:
Diagrama Entidades Un Cab. Guia Remisión tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Cab. Guia Remisión

Empresa Un Empresa tiene muchas Cab. Guia Remisión


Cliente
Un Cab. Guia Remisión solo tiene un Empresa

Un Cliente tiene muchas Cab. Guia Remisión


Cab. Guia Remisión
Un Cab. Guia Remisión solo tiene un Cliente

Un Producto tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Producto


Det. Guia Remisión Producto
Diseño e implementación v2.1
Cambio
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.

Significado:
Diagrama Entidades Un Cab. Factura tiene muchas Det. Factura

Un Det. Factura solo tiene un Cab. Factura


Empresa
Un Empresa tiene muchas Cab. Factura
Cliente

Un Cab. Factura solo tiene un Empresa

Un Cliente tiene muchas Cab. Factura


Cab. Factura
Cab. Guía Remisión
Un Cab. Factura solo tiene un Cliente

Un Producto tiene muchas Det. Factura

Det. Factura Producto Un Det. Factura solo tiene un Producto

Un Cab. Factura solo tiene un Cab. Guía Remisión

Un Cab. Guía Remisión solo tiene un Cab. Factura


Diseño e implementación v2.1
Cambio
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.

Diagrama Total de Entidades

Empresa

Cab. Factura Cab. Guía Remisión

Cliente

Det. Factura Producto Det. Guia Remisión


Diseño e implementación v2.1
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.1
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.1
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v1.1
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.1
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.1

3. Implementar solución:
• Descargue y ejecute CasoVentas2.jar y use el menú
“Descargar SQL”, que descargará 3 archivos sql.
• Abra ventasv2_1.sql en un block de notas. Copie y
ejecute el contenido en el MySQL. Se creará la base de
datos de ejemplo con sus respectivas tablas.
• En el aplicativo, en el menú “Configurar” corrija el
nombre de la base de datos, usuario y contraseña a los
reales del MySql.
4. Ejecute Tarea:
• Cree una empresa, un cliente y dos productos.
• Cree dos Guías con diferente código, pero con la misma
empresa, cliente y productos. Modifique la descripción
de un producto y analice afecto en las Guías
• Cree otro cliente con el código del primero y edítelo.
5. Problema y Solución:
• Sin ningún control en nuevas tablas se crea data
redundante.
• Implemente llaves primarias. Continúe en diseño v2.2
Diseño e implementación v2.2
No
Cambia
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.
Significado:
Diagrama Entidades Un Cab. Guia Remisión tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Cab. Guia Remisión

Empresa Un Empresa tiene muchas Cab. Guia Remisión


Cliente
Un Cab. Guia Remisión solo tiene un Empresa

Un Cliente tiene muchas Cab. Guia Remisión


Cab. Guia Remisión
Un Cab. Guia Remisión solo tiene un Cliente

Un Producto tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Producto


Det. Guia Remisión Producto

Significado:
Diagrama Entidades Un Cab. Factura tiene muchas Det. Factura

Un Det. Factura solo tiene un Cab. Factura


Empresa
Un Empresa tiene muchas Cab. Factura
Cliente

Un Cab. Factura solo tiene un Empresa

Un Cliente tiene muchas Cab. Factura


Cab. Factura
Cab. Guía Remisión
Un Cab. Factura solo tiene un Cliente

Un Producto tiene muchas Det. Factura

Det. Factura Producto Un Det. Factura solo tiene un Producto

Un Cab. Factura solo tiene un Cab. Guía Remisión

Un Cab. Guía Remisión solo tiene un Cab. Factura

Diagrama Total de Entidades

Empresa

Cab. Factura Cab. Guía Remisión

Cliente

Det. Factura Producto Det. Guia Remisión


Diseño e implementación v2.2
No
Cambia
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.2
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.2

3. Implementar solución:
• Ejecute CasoVentas1.jar y use el menú “Descargar SQL”,
que descargará 3 archivos sql.
• Abra ventasv2_2.sql en un block de notas. Copie y
ejecute el contenido en el MySQL. Se creará la base de
datos de ejemplo con sus respectivas tablas.
• En el aplicativo, en el menú “Configurar” corrija el
nombre de la base de datos, usuario y contraseña a los
reales del MySql.
4. Ejecute Tarea:
• Cree dos empresas con el mismo código y analice.
• Cree una Guía con un código de cliente que no existe.
Grabe y analice.
5. Problema y Solución:
• La Factura y Guía permiten clientes, empresas y
productos que no existen. Hay incongruencia.
• Se debe implementar llaves foráneas para corregir.
• Continúe con diseño v2.3
Diseño e implementación v2.3
No
Cambia
1. Analizar caso:
• Entender el proceso y documentos que usa.
• Demostrar comprensión del proceso haciendo su
diagrama de flujo. Identificar que actividades serán
manuales y cuales en sistema.
• Demostrar comprensión de documentos estableciendo
las entidades y relacionando dichas entidades.
Significado:
Diagrama Entidades Un Cab. Guia Remisión tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Cab. Guia Remisión

Empresa Un Empresa tiene muchas Cab. Guia Remisión


Cliente
Un Cab. Guia Remisión solo tiene un Empresa

Un Cliente tiene muchas Cab. Guia Remisión


Cab. Guia Remisión
Un Cab. Guia Remisión solo tiene un Cliente

Un Producto tiene muchas Det. Guia Remisión

Un Det. Guia Remisión solo tiene un Producto


Det. Guia Remisión Producto

Significado:
Diagrama Entidades Un Cab. Factura tiene muchas Det. Factura

Un Det. Factura solo tiene un Cab. Factura


Empresa
Un Empresa tiene muchas Cab. Factura
Cliente

Un Cab. Factura solo tiene un Empresa

Un Cliente tiene muchas Cab. Factura


Cab. Factura
Cab. Guía Remisión
Un Cab. Factura solo tiene un Cliente

Un Producto tiene muchas Det. Factura

Det. Factura Producto Un Det. Factura solo tiene un Producto

Un Cab. Factura solo tiene un Cab. Guía Remisión

Un Cab. Guía Remisión solo tiene un Cab. Factura

Diagrama Total de Entidades

Empresa

Cab. Factura Cab. Guía Remisión

Cliente

Det. Factura Producto Det. Guia Remisión


Diseño e implementación v2.3
No
Cambia
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.3
Cambio
2. Diseñar solución:
• En el diagrama de flujo, las actividades en sistema se les
diseñará las pantallas según su objetivo y los datos que
deban llenarse en los documentos.
• Usando el diagrama de entidades y las pantallas, diseñe
las tablas y sus atributos
Diseño e implementación v2.3

3. Implementar solución:
• Ejecute CasoVentas2.exe y use el menú “Descargar
SQL”, que descargará 4 archivos sql.
• Abra ventasv2_3.sql en un block de notas. Copie y
ejecute el contenido en el MySQL. Se creará la base de
datos de ejemplo con sus respectivas tablas.
• En el aplicativo, en el menú “Configurar” corrija el
nombre de la base de datos, usuario y contraseña a los
reales del MySql.
4. Ejecute Tarea:
• Cree una Guía con un código de empresa que no exista.
Analice el resultado.
• Cree una Guía con un código de empresa que exista.
Analice el resultado.
5. Problema y Solución:
• Nuestro sistema funciona apropiadamente
Diseño e implementación v2.3

6. Conclusión (lo que deben haber aprendido!):


• Reflexione sobre como afectan a nuestro software la
llave primaria, la llave primaria compuesta y la llave
foránea
• Para relacionar dos tablas no es necesaria una llave
foránea, sino un atributo de relación
• Encontramos nuevas entidades: Cliente, Empresa y
Producto tras analizar cada atributo y analizar si
dependía de otro. Por ejemplo en la cabecera de la
Guía, la razón social y la dirección dependen siempre
del ruc del cliente, y así encontramos la entidad Cliente.
A esto se le llama Dependencia Funcional y se escribe
así: ruc -> razón social, dirección
• Reflexione sobre la congruencia de los datos y el ahorro
de espacio en el disco duro del sistema comparando el
que existan o no las tablas Clientes, Empresas y
Productos. El dividir los datos en tablas menores,
buscando congruencia y ahorro de espacio se le llama
Normalización.
Integridad y Redundancia
de datos
Redundancia

Almacenar los mismos datos varias veces en diferentes


lugares: diferentes tablas, en diferentes atributos, en el
mismo atributo pero varias veces en filas diferentes.

Genere desperdicio de espacio de disco y promueve la


incongruencia de datos al ser difíciles de modificar pues un
cambio requiere modificar en todos los lugares donde esté
la redundancia.
Integridad – Reglas de Integridad

En una base de datos se logra mediante reglas de


integridad. Estudie las siguientes teniendo en cuenta lo
aprendido en el caso. Se recomienda hacer ejemplos en la
base de datos a partir del punto 4:

1. Unicidad de la clave primaria: Las claves primarias no


debe tener valores repetidos.
2. Entidad de la clave primaria: Los atributos de la clave
primaria no pueden tener valores nulos.
3. Integridad referencial: Relacionada con la clave foránea.
Los atributos con clave foránea deben ser nulos o su
valor debe existir en la clave primaria de la tabla
referenciada.
4. Restricción de borrado / modificación: No permitir
borrar / modificar una fila si su clave primaria es
referenciada por alguna clave foránea y el cambio
genera filas huérfanas.
Integridad – Reglas de Integridad

5. Borrado / modificación en cascada: Permite borrar /


modificar una fila, tal que se hagan operaciones
compensatorias que propaguen en cascada los cambios
a las filas que la referencien.
6. Volver nulo al borrar / modificar: Permite borrar /
modificar una fila con una clave primaria referenciada, y
efectúa operaciones compensatorias que pongan nulo a
los valores de los atributos de la clave foránea de las
filas que la referencian.
7. Regla de integridad de dominio(valores posibles de un
atributo):
• Los valores no nulos de cada atributo debe estar
contenidos en el dominio de ese atributo.
• Los operadores aplicables a cada atributo dependen
de sus respectivos dominios.
Llaves primarias y foráneas
Definiciones

• Llave primaria o clave primaria (PK): atributo o atributos


que identifican la fila de una tabla de manera única.
• Llave foránea o clave foránea (FK): atributo o atributos
cuyo valor será validado contra la llave primaria de otra
tabla de referencia. Tabla de referencia

TABLA: FACTURA TABLA: GUIA DE REMISION


CODIGO CODIGO FECHA
GUIA REM GUIA REM GUIA REM

PK de

PK
PK

FK
referencia
Definiciones

Las FK se pueden configurar con uno de 4


comportamientos:
1. On delete / update set null: Si por borrar o actualizar
hay incongruencia modificar el valor del atributo que
cree la incongruencia a null
2. On delete / update no action: Si por borrar o actualizar
hay incongruencia impedir el cambio
3. On delete / update cascade: Si por borrar o actualizar
hay incongruencia modificar el valor del atributo que
cree la incongruencia al nuevo valor cambiado
4. On delete / update set default: Si por borrar o actualizar
hay incongruencia modificar el valor del atributo que
cree la incongruencia al valor por defecto del atributo
Dependencia Funcional
Definición

Si una persona tienen estos atributos: DNI, nombre, dirección y


teléfono; entonces a cada valor de DNI le corresponde unos
valores de nombre, dirección y teléfono.

Entonces, decimos que “el DNI determina el resto de atributos”


o también que “nombre, dirección y teléfono dependen
funcionalmente de DNI”.

DNI nombre, dirección y teléfono

En resumen, decimos que un atributo Y de una relación


“depende funcionalmente” de otro atributo X si para cada valor
de X le corresponde siempre un determinado valor de Y.

X Y
Conclusiones
• Entender el concepto de dependencia funcional me ayuda a
detectar todas las entidades que requiera tener un sistema
de información
• Existen reglas de integridad que determinan como se
comportarán las llaves primarias y foráneas en una base de
datos.
• Debo repasar las conclusiones del caso parte 2 para tenerlas
presentes el resto del curso
Gracias
Docente: JABS

También podría gustarte