赛派号

家用拖地神器地板清洁片 Modelo Entidad

Modelo Entidad-Relaci贸n (ERD)# Introducci贸n#

El Modelo Entidad-Relaci贸n (E/R) es una herramienta fundamental en el dise帽o de bases de datos. Permite representar gr谩ficamente las entidades y las relaciones que existen entre ellas en un dominio de informaci贸n. Su uso es ampliamente aplicado en la fase de dise帽o conceptual, facilitando la creaci贸n de una estructura l贸gica que, posteriormente, se convierte en una base de datos relacional implementada en sistemas como MySQL.

Conceptualizaci贸n#

El Modelo Entidad-Relaci贸n fue propuesto por Peter Chen en 1976 y es una de las metodolog铆as m谩s populares para el dise帽o de bases de datos. En este modelo, se utilizan diagramas (Diagramas E/R) para representar gr谩ficamente las entidades, sus atributos y las relaciones que existen entre ellas.

Figura 3 Diagrama 1#

Figura 4 Diagrama 2#

Entidad: Es cualquier objeto o concepto que puede ser identificado de manera 煤nica dentro de un dominio. En una base de datos, una entidad puede ser una persona, un lugar o cualquier cosa de inter茅s, como 芦Estudiante禄, 芦Curso禄 o 芦Producto禄.

Atributos: Son las caracter铆sticas o propiedades que describen una entidad. Por ejemplo, una entidad 芦Estudiante禄 puede tener los atributos 芦Nombre禄, 芦Edad禄 y 芦Matr铆cula禄.

Figura 5 ejemplo1#

Figura 6 ejemplo2#

Relaci贸n: Es una asociaci贸n entre dos o m谩s entidades. Por ejemplo, una relaci贸n entre 芦Estudiante禄 y 芦Curso禄 puede representar la inscripci贸n de un estudiante en un curso.

Ejemplos de digramas

Figura 7 diagrama3#

Figura 8 diagrama3#

Figura 9 diagrama4#

Figura 10 diagrama5#

Figura 11 diagrama6#

Figura 3.17: Tipos de relaciones ternarias. (a) La relaci贸n SUMINISTRO. (b) Tres relaciones binarias no equivalentes a SUPPLY. (c) SUPPLY representada como un tipo de entidad d茅bil.

Campos de Aplicaci贸n#

El modelo E/R es aplicable en cualquier 谩mbito donde se necesite estructurar informaci贸n para su posterior almacenamiento y consulta. Algunos ejemplos de campos donde se puede aplicar el modelo E/R incluyen:

Sistemas de Gesti贸n de Inventarios

Sistemas de Informaci贸n para Universidades (gesti贸n de estudiantes, profesores, materias, etc.)

Plataformas de Comercio Electr贸nico

Sistemas de Recursos Humanos

Plataformas de Redes Sociales

Elementos del Modelo E/R#

El modelo E/R se compone de varios elementos cle que permiten su correcta construcci贸n:

Entidades: Representan los objetos o conceptos que se quieren almacenar en la base de datos. Ejemplos: Estudiante, Curso, Producto.

Atributos: Son las caracter铆sticas de las entidades. Ejemplo: la entidad Estudiante puede tener atributos como nombre, edad, matr铆cula.

Relaciones: Muestran c贸mo las entidades est谩n relacionadas entre s铆. Ejemplo: Un Estudiante se inscribe en un Curso.

Cardinalidad: Especifica el n煤mero de instancias de una entidad que pueden estar asociadas a una instancia de otra entidad en una relaci贸n. Ejemplo: Un Estudiante puede estar inscrito en muchos Cursos, pero un Curso puede tener muchos Estudiantes inscritos (relaci贸n muchos a muchos).

Lles Primarias (Primary Keys): Atributo o conjunto de atributos que identifican de manera 煤nica una instancia de entidad. Ejemplo: el atributo matr铆cula es la lle primaria de Estudiante.

Lles For谩neas (Foreign Keys): Atributo en una entidad que hace referencia a la lle primaria de otra entidad, estableciendo una relaci贸n entre ellas.

Requisitos para que se d茅 una relaci贸n#

Para establecer una relaci贸n entre dos entidades en un modelo E/R, se deben cumplir ciertos requisitos:

Cardinalidad: Define cu谩ntas instancias de una entidad est谩n asociadas con las instancias de otra entidad. Los tipos de cardinalidad m谩s comunes son:

Uno a uno (1:1): Una instancia de una entidad est谩 relacionada con una 煤nica instancia de otra entidad.

Uno a muchos (1:N): Una instancia de una entidad puede estar relacionada con m煤ltiples instancias de otra entidad.

Muchos a muchos (N:M): Varias instancias de una entidad est谩n relacionadas con varias instancias de otra entidad.

Participaci贸n: Indica si la participaci贸n de una entidad en una relaci贸n es total o parcial. Si es total, todas las instancias de la entidad participan en la relaci贸n; si es parcial, algunas instancias pueden no participar.

Lles: Las lles son cruciales para garantizar la unicidad de las entidades y las relaciones. Las lles primarias permiten identificar de manera 煤nica una entidad, mientras que las lles for谩neas permiten vincular entidades a tr茅s de relaciones.

Figura 12 relacion1#

Figura 13 relacion2#

Figura 14 relacion3#

Figura 15 relacion4#

Figura 16 relacion5#

Ejemplo de Diagrama E/R#

Consideremos un ejemplo de un sistema de gesti贸n de estudiantes y cursos. En este caso, tenemos dos entidades principales: Estudiante y Curso, y una relaci贸n entre ellas llamada Inscripci贸n.

La entidad Estudiante tiene los atributos nombre, edad y matr铆cula.

La entidad Curso tiene los atributos nombreCurso y idCurso.

La relaci贸n Inscripci贸n indica que un estudiante se inscribe en un curso.

Implementaci贸n del Modelo E/R en MySQL#

En este ejemplo, vamos a implementar las entidades Estudiante, Curso y la relaci贸n Inscripci贸n en MySQL.

-- Creaci贸n de la base de datos Universidad CREATE DATABASE IF NOT EXISTS Universidad; -- Selecci贸n de la base de datos para su uso USE Universidad; -- Tabla Estudiante: Almacena la informaci贸n de los estudiantes CREATE TABLE IF NOT EXISTS Estudiante ( matricula INT AUTO_INCREMENT, -- Matricula como cle primaria y valor auto-incremental nombre VARCHAR(50) NOT NULL, -- Nombre del estudiante, campo obligatorio edad INT CHECK (edad >= 17), -- Edad del estudiante con restricci贸n (debe ser mayor o igual a 17) fechaNacimiento DATE, -- Fecha de nacimiento opcional -- STR_TO_DATE('12-05-2004', '%d-%m-%Y') -- DATE_FORMAT(fechaNacimiento, '%d-%m-%Y') direccion VARCHAR(100), -- Direcci贸n del estudiante telefono VARCHAR(15), -- Tel茅fono opcional correoElectronico VARCHAR(100), -- Correo electr贸nico 煤nico PRIMARY KEY (matricula), -- Cle primaria (matricula) UNIQUE (correoElectronico), -- El correo debe ser 煤nico INDEX(nombre) -- 脥ndice para mejorar la b煤squeda por nombre ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Tabla Curso: Almacena la informaci贸n de los cursos CREATE TABLE IF NOT EXISTS Curso ( idCurso INT AUTO_INCREMENT, -- ID del curso como cle primaria y valor auto-incremental nombreCurso VARCHAR(100) NOT NULL, -- Nombre del curso, campo obligatorio descripcion TEXT, -- Descripci贸n opcional del curso duracion INT, -- Duraci贸n del curso en horas nivel ENUM('Basico', 'Intermedio', 'Avanzado'), -- Nivel del curso PRIMARY KEY (idCurso), -- Cle primaria (idCurso) INDEX(nombreCurso) -- 脥ndice para mejorar la b煤squeda por nombre de curso ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Tabla Inscripcion: Almacena la relaci贸n entre estudiantes y cursos CREATE TABLE IF NOT EXISTS Inscripcion ( matricula INT, -- Cle for谩nea que hace referencia a la matr铆cula del estudiante idCurso INT, -- Cle for谩nea que hace referencia al ID del curso fechaInscripcion DATE NOT NULL, -- Fecha en la que se inscribi贸 el estudiante al curso estado ENUM('Inscrito', 'Completado', 'Retirado') DEFAULT 'Inscrito', -- Estado de la inscripci贸n calificacion DECIMAL(3,2) CHECK (calificacion BETWEEN 0.0 AND 10.0), -- Calificaci贸n entre 0.00 y 10.00 PRIMARY KEY (matricula, idCurso), -- Cle primaria compuesta (matricula e idCurso) FOREIGN KEY (matricula) REFERENCES Estudiante(matricula) ON DELETE CASCADE -- Si un estudiante se borra, se eliminan sus inscripciones ON UPDATE CASCADE, -- Si se actualiza la matr铆cula del estudiante, tambi茅n se actualiza aqu铆 FOREIGN KEY (idCurso) REFERENCES Curso(idCurso) ON DELETE RESTRICT -- No permite eliminar un curso si tiene inscripciones activas ON UPDATE CASCADE, -- Si se actualiza el idCurso, tambi茅n se actualiza aqu铆 UNIQUE (matricula, idCurso), -- Asegura que no se repita la inscripci贸n de un mismo estudiante en un mismo curso INDEX(fechaInscripcion) -- 脥ndice para b煤squedas por fecha de inscripci贸n ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Comentarios: -- 1. La tabla "Estudiante" incluye un 铆ndice en el nombre para mejorar las b煤squedas por este campo. -- 2. La tabla "Curso" tiene un 铆ndice similar en el nombre del curso. -- 3. Se han agregado restricciones en la tabla "Inscripcion" para asegurar que los datos ingresados sean consistentes y v谩lidos. -- 4. Se han definido relaciones con cles for谩neas para mantener la integridad referencial. -- 5. Las opciones "ON DELETE CASCADE" y "ON DELETE RESTRICT" garantizan un manejo adecuado de la eliminaci贸n de registros relacionados. Mejoras#

AUTO_INCREMENT: He agregado AUTO_INCREMENT a las cles primarias matricula y idCurso, lo cual permite generar valores 煤nicos autom谩ticamente para cada nuevo registro, lo que facilita la inserci贸n de nuevos datos.

Restricciones: Se agregaron restricciones como CHECK en los campos edad y calificacion para asegurar que los valores sean v谩lidos dentro de ciertos rangos.

Unicidad y Cles: La columna correoElectronico en la tabla Estudiante es 煤nica para evitar la duplicaci贸n de correos electr贸nicos. La combinaci贸n de matricula e idCurso en la tabla Inscripcion es 煤nica para evitar que un estudiante se inscriba m谩s de una vez en el mismo curso.

Integridad referencial: Las cles for谩neas en Inscripcion se utilizan para asegurar que las relaciones entre Estudiante y Curso se mantengan consistentes. Las opciones ON DELETE CASCADE y ON DELETE RESTRICT gestionan el comportamiento de las relaciones cuando se eliminan o actualizan registros.

脥ndices: Se a帽adieron 铆ndices para mejorar el rendimiento en las b煤squedas y consultas frecuentes, como nombre en Estudiante, nombreCurso en Curso y fechaInscripcion en Inscripcion.

Aplicaci贸n de las Formas Normales#

Una vez que hemos dise帽ado nuestro diagrama E/R y creado las tablas correspondientes, debemos asegurarnos de que las tablas est茅n normalizadas. Para este caso, podemos aplicar la Primera Forma Normal (1FN), que indica que todos los atributos deben contener valores at贸micos, es decir, no repetibles.

Ejercicio#

Taller

Crear los diagramas ER y EER de:

El c贸digo en la secci贸n de Implementaci贸n.

La tabla normalizada del taller de Normalizaci贸n.

Conclusiones#

El Modelo Entidad-Relaci贸n es una herramienta cle en el dise帽o conceptual de bases de datos, permitiendo la representaci贸n gr谩fica de las entidades, sus atributos y relaciones. Al normalizar las tablas derivadas del modelo E/R, garantizamos que la base de datos sea eficiente y libre de redundancias. La implementaci贸n de un diagrama E/R en MySQL se traduce en la creaci贸n de tablas y relaciones mediante el uso de lles primarias y for谩neas, aplicando los principios de cardinalidad y participaci贸n.

Recursos Adicionales#

ER diagrams vs. EER diagrams: What鈥檚 the difference?

What is an Entity Relationship Diagram (ERD)?

Entity鈥搑elationship model

MySQL Documentation: https://dev.mysql.com/doc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lsinopec@gmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了