Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Base Proyecto

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 23

UNIVERSIDAD CATÓLICA BOLIVIANA “SAN

PABLO”
UNIDAD ACADÉMICA REGIONAL COCHABAMBA
Departamento de Ciencias Exactas e Ingeniería
Carrera de Ingeniería De Telecomunicaciones

Base de datos en un Micro-mercado

Proyecto Final de Base de Datos I

Luis Fernando Peñaloza Carbajal


Vladimir Marcelo Romero Quinteros

Cochabamba - Bolivia
Mayo 2019

1. Organización de datos de un micro mercado sin base de datos


Los orígenes de las bases de datos se remontan a la Asisntigüedad donde ya existían
bibliotecas y toda clase de registros. Además, también se utilizaban para recoger información
sobre todos los productos de compra, venta, clientes, proveedores y otros. Sin embargo, su
búsqueda era lenta y poco eficaz y no se contaba con la ayuda de máquinas que pudiesen
reemplazar el trabajo manual.

2. Operaciones para implementar un base de datos

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de
información de forma organizada para que luego podamos encontrar y utilizar fácilmente.

Características

Entre las principales características de los sistemas de base de datos podemos mencionar:

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

● Redundancia mínima.

● Acceso concurrente por parte de múltiples usuarios.

● Integridad de los datos.

● Consultas complejas optimizadas.

● Seguridad de acceso y auditoría.

● Respaldo y recuperación.

● Acceso a través de lenguajes de programación estándar.

¿Por qué son importantes las bases de datos en los micro mercados?

Las principales utilidades que ofrece una base de datos a la empresa son las siguientes:

1
● Agrupar y almacenar todos los datos de la empresa en un único lugar.

● Facilitar que se compartan los datos entre los diferentes miembros de la empresa.

● Evitar la redundancia y mejorar la organización de la agenda.

● Realizar una interlocución adecuada con los clientes.

Si una Base de Datos se gestiona adecuadamente, el micro mercado obtendrá diferentes


ventajas. Aumentará su eficacia, habrá trabajos que se realicen con mayor rapidez y agilidad
debido a la simplificación de los mismos, podremos mejorar la seguridad de los datos que
almacenamos, y con todos estos factores, maximizamos los tiempos y, por tanto, se producirá
una mejora en la productividad.

3. modelo entidad-relación

Un modelo de entidad relación es una entidad que está relacionada con otra entidad El
Modelo Entidad-Relación

1. Se elabora el diagrama (o diagramas) entidad-relación.

2. Se completa el modelo con listas de atributos y una descripción de otras restricciones


que no se pueden reflejar en el diagrama.

El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras técnicas para
lograr un modelo directamente implementable en una base de datos. Brevemente:

Permite mostrar resultados entre otras entidades pertenecientes a las existentes de manera
que se encuentre la normatividad de archivos que se almacenarán.

● Transformación de relaciones múltiples en binarias.

● Normalización de una base de datos de relaciones (algunas relaciones pueden


transformarse en atributos y viceversa).

2
● Conversión en tablas (en caso de utilizar una base de datos relacional).

Elementos del modelo entidad-relación

Entidad

Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian
claramente entre sí.

Para poder seguir un ejemplo durante el artículo añadiré ejemplos sobre un taller mecánico,
donde se podría crear las siguientes entidades:

● Coches (objeto físico): contiene la información de cada taller.

● Empleado (objeto físico): información de los trabajadores.

● Cargo del empleado (cosa abstracta): información de la función del empleado.

Atributos

Los atributos definen o identifican las características de entidad (es el contenido de esta
entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad.
Estos atributos pueden ser de distintos tipos (numéricos, texto, fecha...).

Los atributos se representan como círculos que descienden de una entidad, y no es necesario
representarlos todos, sino los más significativos, como a continuación.

Relación

Es un vínculo que nos permite definir una dependencia entre varias entidades, es decir, nos
permite exigir que varias entidades comparten ciertos atributos de forma indispensable.

Las relaciones se muestran en los diagramas como rombos, que se unen a las entidades
mediante líneas.

3
Relaciones de cardinalidad

Podemos encontrar distintos tipos de relaciones según cómo participen en ellas las entidades.
Es decir, en el caso anterior cada empleado puede tener un cargo, pero un mismo cargo lo
pueden compartir varios empleados.

Esto complementa a las representaciones de las relaciones, mediante un intervalo en cada


extremo de la relación que especifica cuántos objetos o cosas (de cada entidad) pueden
intervenir en esa relación.

Uno a uno: Una entidad se relaciona únicamente con otra y viceversa. Por ejemplo, si
tuviésemos una entidad con distintos chasis y otra con matrículas deberíamos de determinar
que cada chasis solo puede tener una matrícula (y cada matrícula un chasis, ni más en ningún
caso).

Uno a varios o varios a uno: determina que un registro de una entidad puede estar
relacionado con varios de otra entidad, pero en esta entidad existir solo una vez. Como ha
sido en el caso anterior del trabajador del taller.

Varios a varios: determina que una entidad puede relacionarse con otra con ninguno o varios
registros y viceversa. Por ejemplo, en el taller un coche puede ser reparado por varios
mecánicos distintos y esos mecánicos pueden reparar varios coches distintos.

Claves: Es el atributo de una entidad, al que le aplicamos una restricción que lo distingue de
los demás registros (no permitiendo que el atributo específico se repita en la entidad) o le
aplica un vínculo (exactamente como comentábamos en las relaciones). Estos son los
distintos tipos:

Superclave: aplica una clave o restricción a varios atributos de la entidad, para así asegurarse
que en su conjunto no se repitan varias veces y así no poder entrar en dudas al querer
identificar un registro.

Clave primaria: identifica inequívocamente un solo atributo no permitiendo que se repita


en la misma entidad. Cómo sería la matrícula o el número de chasis de un coche (no puede
existir dos veces el mismo).

4
Clave externa o clave foránea: este campo tiene que estar estrictamente relacionado con la
clave primaria de otra entidad, para así exigir que exista previamente ese clave.
Anteriormente hemos hablado de ello cuando comentábamos que un empleado
indispensablemente tiene que tener un cargo (que lo hemos representado numéricamente),
por lo cual si intentamos darle un cargo inexistente el gestor de bases de datos nos devolvería
un error.

3. Diseño del modelo relacional

5
6
4. Normalización y Diccionario de Base de Datos

Normalización

● Cliente (ciCliente, nomCliente, apeCliente, telfCliente)

Está en 1FN

Está en 2FN

No esta en 3FN: normalizado

Cliente (ciCliente, telfCliente, nomCliente)

Cliente_Nom (nomcliente, apCliente)

● CondEspeciales (fidelidad, PuntosAcum, ciCliente)

Está en 1FN

Está en 2FN

Está en 3FN

● CompraCliente (ciCliente, precio, total, descripción)

Está en 1FN

No está en 2FN: normalizado

CompraCliente (ciCliente, descripción)

Producto (precio, total, ciCliente)

Está en 3FN

● CompraProd ( codProd, cantProd, descripcion)

7
Está en 1FN

Está en 2FN

Está en 3FN

● Distribuidor (codMicro, noMicro, localización, observaciones,)

Está en 1FN

Está en 2FN

No está en 3FN: normalizado

Distribuidor (codMicro, noMicro,observaciones)

Ubicación (noMicro, localización)

● Producto (idProd, fechInicio, fechFin, observaciones)

Está en 1FN

Está en 2FN

Está en 3FN

● DistribuidorProd (descripcion, idProd, fechPedido, fechEntrega)

Está en 1FN

No está en 2FN: normalizado

DistribuidorProd (descripcion, idProd)

Producto (idProd, fechPedido, fechEntrega)

Está en 3FN

● Categoría (tipo, desCategoria, numMin, idProd)

8
Está en 1FN

No está en 2FN: normalizado

Categoría (tipo, desCategoria, numMin, idProd)

Producto (idProd)

Está en 3FN

Clave principal, clave foránea

Diccionario de Base de Datos

9
10
5. Implementación de la Base de Datos

Justificación de la elección del Gestor de Base de Datos MySQL

MySQL es un software de código abierto para gestión de bases de datos relacionales, que
brinda un excelente rendimiento, flexibilidad y velocidad.

Algunas características de MySQL son:

● Permite escoger múltiples motores de almacenamiento para cada tabla.

● Agrupación de transacciones, reuniendo las de forma múltiple desde varias


conexiones con el fin de incrementar el número de transacciones por segundo.

● Conectividad segura.

● Ejecución de transacciones y uso de claves foráneas.

● Presenta un amplio subconjunto del lenguaje SQL.

● Replicación

● Disponible en casi todas las plataformas o sistemas.

● Búsqueda e indexación de campos de texto.

● Utiliza varias herramientas para portabilidad.

● Tablas hash en memorias temporales

11
● Uso de tablas en disco b-tree para búsquedas rápidas con compresión de índice.

● Ofrece un sistema de contraseñas y privilegios seguros de verificación basada en el


host y tráfico de contraseñas encriptado al conectarse a un servidor.

● Uso de multihilos mediante hilos de kernel.

● Soporta gran cantidad de datos, incluso con más de 50 millones de registros.

● En las últimas versiones, se permiten hasta 64 índices por tablas. Cada índice puede
consistir desde 1 a 16 columnas o partes de columnas. El máximo ancho de límite son
de 1000 bytes.

Ventajas:

● MySQL es de uso libre y gratuito.

● Software con Licencia GPL.

● Bajo costo en requerimientos para la elaboración y ejecución del programa.

● No se necesita disponer de Hardware o Software de alto rendimiento para la ejecución


del programa.

● Velocidad al realizar las operaciones y buen rendimiento.

● Facilidad de instalación y configuración.

● Soporte en casi el 100% de los sistemas operativos actuales.

● Baja probabilidad de corrupción de datos.

6. Entorno con seguridad y encriptación

Script para la creación de la Base de Datos

mysql -u root -p
password:

12
drop database if exists Micromercado;
create database Micromercado;

create table Cliente(


ciCliente int not null auto_increment,
nomCliente varchar(15),
apeCliente varchar(15),
telfCliente int,
primary key(ciCliente)
)engine=innodb;

create table CondEspeciales(


fidelidad int not null,
puntosAcum int,
ciCliente int,
primary key(fidelidad),
foreign key(ciCliente) references Cliente(ciCliente) on delete cascade on update cascade
)engine=innodb;

create table CompraCliente(


ciCliente int not null,
precio int,
total int,
descripcion varchar(20),
primary key(ciCliente)
)engine=innodb;

create table CompraProd(


codProd varchar(10) not null,
cantProd int,
descripcion varchar(20),
primary key(codProd)
)engine=innodb;

create table Distribuidor(


codMicro int not null auto_increment,
noMicro varchar(20),
localizacion varchar(10),
observaciones varchar(20),
primary key(codMicro)
)engine=innodb;

create table Producto(


idProd int not null auto_increment,
fechInicio varchar(8),
fechFin varchar(8),
observacion varchar(20),

13
primary key(idProd)
)engine=innodb;

create table DistribuidorProd(


descripcion varchar(10),
idProd varchar(10),
fechPedido varchar(10),
fechEntrega(10),
primary key(descripcion),
foreign key(idProd) references Producto(idProd) on delete cascade on update cascade
)engine=innodb;

create table Categoria(


tipo varchar(20) not null,
desCategoria varchar(20),
numMin int,
idProd varchar(10),
primary key(tipo),
foreign key(idProd) references Producto(idProd) on delete cascade on update cascade
)engine=innodb;

7. Implementación de la Aplicación

Justificación de la elección del lenguaje de programación C#

C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos


desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después
fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es
uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.

Características principales de C#

Veamos algunas de las características del lenguaje C#, y así poder comprar con algunos más
parecidos a él como Java o C++.

Estas características pueden verse como una serie de ventajas del lenguaje de programación
C#.

● Sintaxis sencilla. La sintaxis de C# es muy similar a Java, lo que simplifica al


desarrollador a la hora de escribir código.

14
● Escritura. En C# tienes que declarar los tipos de datos con las variables, además que
estas variables no pueden ser globales. De esta manera se reducen los errores de
compilación. Además, es un lenguaje orientado a objetos, así que obliga que todos
los métodos y propiedades estén dentro de una clase.

● Orientación a componentes. Además de ser orientado a objetos, como hemos dicho


antes, es orientado a componentes. Podemos definir propiedades sin necesidad de
crear métodos, como en Java, o usar eventos sin tratar con punteros a funciones.
Escribir código en C# es mucho más sencillo y potente que en otros lenguajes de
programación.

● Sistema de tipos unificado. Todos los tipos de datos sencillos de C# derivan de una
clase común llamada System.Object. De esta manera, la conversión de tipos sólo es
compatible entre los tipos más cercanos (números enteros con decimales, por
ejemplo), además de facilitar la creación de colecciones.

● CLR (Common Language Runtime). Es el núcleo de .NET, el motor que ejecuta las
aplicaciones programadas en C#, lo que ayuda a la integración del sistema operativo
o dlls externas.

● Espacio de nombres. Puedes agrupar o aislar código mediante namespaces, parecido


al package de Java.

● Polimorfismo. En C++ se permite la herencia múltiple, pero en C# no, aunque puedes


implementar interfaces. De esta manera se evitan complicaciones y simplifica la
escritura.

● Operadores sobrescritos. En C# se puede recodificar un operador, como puede ser el


sumatorio + o el incremento ++.

● Bibliotecas. Cualquier compilador de C# viene con un mínimo de biblioteca de clases


disponibles y que puedes usar.

● Eliminación de los problemas de DLLs. Aunque puedes crear dlls en .NET, no te


encuentras con la problemática de la sustitución de versiones antiguas de dlls

15
compartidas con versiones nuevas. Pueden existir diferentes versiones de la misma
dll, simplificando la instalación del software.

● Multiplataforma. Actualmente, el lenguaje C# es de código abierto y se ha utilizado


en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples sistemas operativos,
como puede ser OSx o Android.

● Integración con otros lenguajes. Cualquier lenguaje que se compile con .NET, como
la nueva versión de visual basic, puede aprovecharse para usar en tu proyecto.

● Mejora en la gestión de memoria. Al igual que Java, en C# dispone de un recolector


de basura que destruye los objetos que no se usan en memoria.

● Tratamiento de errores. Cualquier lenguaje de programación moderno utiliza las


excepciones para controlar los posibles errores en el código.

● Multihilo. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en


paralelo y sincronizandose al final.

Interfaces de usuario de aplicación

Figura 1.

16
Fuente: Elaboración propia en base a Visual Studio 2017, 2019

Figura 2.

Fuente: Elaboración propia en base a Visual Studio 2017, 2019

Figura 3.

Fuente: Elaboración en base a Visual Studio 2017, 2019

Figura 4.

17
Fuente: Elaboración propia en base a Visual Studio 2017, 2019

Conexión de la aplicación en C# a la Base de Datos en MySQL

Paso 1) Se debe crear la base de datos, para esto se debe ejecutar el XAMPP Control Panel.
Iniciar Apache y MySQL y luego Shell. Una vez que aparezca la pantalla del programa
iniciamos con “mysql -u root -p, y damos enter en el password” .

Creamos una base de datos con el nombre de “micromercado”, y entramos a crear las tablas
que necesitaremos más adelante para poder conectar con nuestra aplicación en C#.

Paso 2) Debemos buscar en Google: conector mysql para c#, ingresar al siguiente sitio:

18
Instalandolo como cualquier otro software.

Paso 3) Creamos un nuevo proyecto en C# (Visual Studio 2017), con el nombre de la base
de datos que se desea, en este caso es Proyecto1, seleccionamos “Aplicación de Windows
Forms (.NET Framework)”.

19
Paso 4) En el entorno de C# ir a la ventana de “Explorador de soluciones”, hacer click
derecho sobre “References”, elegir “Agregar referencias”, saldrá una ventana, elegir en la
parte de “Extensiones” y escoger la opción de “MySQL.Data”. Esto permite que la
aplicación pueda conectarse a una base de datos en MySQL.

20
Paso 5) Se crea una carpeta “Clases”. Después dentro de ésta carpeta se crea la clase
“Conexion”.

Abrir clase “Conexion”, se añade la cabecera de la librería de MySQL, se tiene:

using MySql.Data.MySqlClient;

Aquí es donde se menciona a qué base de datos se desea conectar, el usuario y el password:

Una vez hecho esto, se puede empezar a trabajar con MySQL.

En la misma carpeta de “Clases”, se crea la clase “cliente”. Se define los atributos y


métodos (Guardar, buscar, editar y eliminar) de “cliente”.

Bibliografía

21
https://www.gestiopolis.com/importancia-las-bases-datos-nivel-empresarial/

https://www.genbeta.com/desarrollo/fundamento-de-las-bases-de-datos-modelo-entidad-
relacion

https://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n

https://hostingpedia.net/mysql.html

https://es.wikipedia.org/wiki/C_Sharp

https://lenguajesdeprogramacion.net/c-sharp/

https://www.hostingseguro.co/blog/que-es-mysql-conoce-algunos-de-sus-beneficios

22

También podría gustarte