6. DATOS VS INFORMACION
• Los datos se caracterizan
por no contener ninguna
información.
• Puede ser una letra, una
palabra o una
descripción.
• Son utilizados como
diversos métodos para
comprimir la información
• Es un mensaje con un
contenido determinado,
emitido por una persona
hacia otra.
• Es un conjunto organizado
de datos que constituye un
mensaje.
• Conocimientos basados en
los datos a los cuales,
mediante un
procesamiento, se les ha
dado significado.
7. Una base de datos se puede
definir como un conjunto de
información relacionada que se
encuentra agrupada ó
estructurada formado por un
conjunto de datos almacenados
en discos que permiten el acceso
directo a ellos y un conjunto de
programas que manipulen ese
conjunto de datos.
BASES DE DATOS
10. • Generalmente todo modelo tiene una
representación gráfica, para el caso de
datos el modelo más popular es el
modelo entidad-relación o diagrama E/R.
• Se denomina así debido a que
precisamente permite representar
relaciones entre entidades (objetivo del
modelado de datos).
• El modelo debe estar compuesto por:
✓Entidades
✓Atributos
✓Relaciones
✓Cardinalidad
✓Llaves
MODELO ENTIDAD RELACION
ENTIDADES
ATRIBUTOS
RELACIONES
11. • La representación gráfica de un tipo de
entidad en este modelo es un rectángulo
etiquetado en cuyo interior esta el
nombre del tipo de entidad.
• Las entidades se describen en una DB
mediante un conjunto de atributos.
• Las entidades tienen atributos.
o Ejemplo: las personas tienen
nombre, dirección, etc.
• Conjunto de entidades: Es un conjunto
de entidades del mismo tipo que
comparten las mismas propiedades.
o Ejemplo: conjunto de todas las
personas, empresas, árboles.
ENTIDAD
12. ▪ Regulares o Fuertes: Son
aquellas cuyos ejemplares
tienen existencia por si
mismos.
▪ Débiles: En las cuales la
existencia de un ejemplar
depende de que exista un
cierto ejemplar, de un tipo de
entidad.
TIPOS DE ENTIDADES
13. Propiedad o característica de una
entidad. Las entidades se describen
en una base de datos mediante un
Conjunto de Atributos. Cada una de
las propiedades o características que
tiene un tipo de entidad o un tipo de
interrelación. El atributo le da una
determinada interpretación al
dominio.
ATRIBUTOS
dirección
EMPLEADO
nombre
fechanacim telefono
calle
provincia
ciudad
codpostal
edad
nss
dni
altura
nacionalidad
14. Conjunto de valores permitidos para cada atributo
❖Tipos de atributos:
• Simples y compuestos
• Univalorados y multivalorados
✓ E.j. multivalorado : numero-telefono
• Derivados
• Puede ser derivado de valores de otros atributos o
entidades
✓ E.j. edad, dada la fecha de nacimiento
DOMINIO
15. ▪ Una asociación, vinculación o correspondencia entre
diferentes entidades.
▪ Una relación también puede tener atributos descriptivos
Impositor, ra
▪ Adj. y s. [Persona] Que ingresa dinero en una Institución
Bancaria.
Cliente Impositor Cuenta
Id_Cliente Nombre_Cliente Dir_Cliente Ciudad_Cliente Num_Cuenta Saldo
RELACIONES
16. Es el número de entidades con la cual otra
entidad puede asociar mediante una relación
Considerando una relación binaria entre el
juego de entidades A y el B, la cardinalidad
puede ser:
• Uno a uno
• Uno a mucho
• Muchos a Uno
• Muchos a muchos
CARDINALIDAD
17. Una entidad en A esta asociada con cualquier número
de entidades en B (0 ó más) y viceversa
Ejemplo: Un paciente en un hospital tiene un solo
cuarto y un cuarto pertenece a un solo paciente
CARDINALIDAD UNO A UNO
tiene
paciente cuarto
1 1
1
1
1:1
18. • Cuando se decide ingresar un paciente a un hospital
se le asigna un cuarto y en un cuarto puede estar un
paciente o ninguno (suponiendo un hospital privado).
paciente cuarto
n_paciente
i_paciente#
a_paciente
i_cuarto#
i_cuarto#
i_piso
q_costo
d_ingreso
CARDINALIDAD UNO A UNO
19. Una entidad en A esta asociada con cualquier número (0 ó
más) de entidades en B. Una entidad en B, puede estar
asociada a lo mucho con una entidad en A.
CARDINALIDAD UNO A
MUCHOS
tiene
persona cuenta
1 N
1
1
1:N
20. El titular de una cuenta de cheques puede tener cualquier
número de tarjetas, pero cada tarjeta pertenece a una sola
persona, las entidades son cliente y tarjeta
cliente tarjeta
n_cliente
i_cliente#
a_cliente
i_tarjeta#
i_password
q_limite
d_apertura i_cliente#
CARDINALIDAD UNO A
MUCHOS
21. Una entidad en A esta asociada con cualquier número de
entidades en B (0 ó más) y viceversa.
CARDINALIDAD MUCHOS A
MUCHOS
pertenece
médico proyectos
1 N
1
N
N:N
22. ✓ En un proyecto de investigación puede haber cualquier
número de médicos, un médico puede participar en
cero o varios proyectos
medico proyecto
n_medico
i_medico#
a_medico
i_especial
i_proyecto#
n_proyecto
t_resumen
a_telefono
CARDINALIDAD MUCHOS A
MUCHOS
23. En el diseño de una base de datos no se permiten relaciones
“muchos a muchos”, cuando se tiene esto se crea una “relación”
entre ambas cuya llave primaria será una llave compuesta por las
llaves primarias de las entidades que está uniendo
medico proyecto
n_medico i_medico#
a_medico
i_especial
i_proyecto#
n_proyecto
t_resumen
a_telefono
medico-
proyecto
i_medico# i_proyecto#
CARDINALIDAD MUCHOS A
MUCHOS
24. ❖ Son atributos que se usan para diferenciar una entidad
de otra, por ejemplo un medicamento de otro, o un
paciente de otro. Puede haber varias llave candidato.
❖ La llave primaria debe ser única y de preferencia no
cambie con el tiempo.
❖ Cada juego de entidades (tabla) debe tener una llave
primaria.
LLAVE PRIMARIA
(PRIMARY KEY)
25. ❖ Claves (Llaves): Atributos que identifican una entidad dentro
de un conjunto de entidades.
❖ Superclave: Conjunto de atributos no vacío, que identifica en
forma única una entidad dentro de un conjunto de entidades.
Superclave = {superclaves}
❖ Clave candidata: Es una superclave para la cual ningún
subconjunto es superclave, excepto el mismo.
❖ Clave primaria. Es la clave candidata escogida por el
diseñador. Atributo o conjunto de atributos que permiten
identificar en forma única una tupla en la tabla y ningún
subconjunto de ella posee esta propiedad.
❖ Llave foránea: Es un atributo que es llave primaria en otra
entidad con la cual se relaciona. Relacionar las entidades.
LLAVE O CLAVES
26. ▪ Los valores validos para un atributo deben tener asignado información
acerca de:
✓ Tipo de Datos. Los tipos básicos son entero, decimal, carácter y
fecha-hora.
✓ Longitud. Es el número de dígitos o caracteres en el valor de un
atributo.
✓ Formato de Fecha. Peste puede ser dd/mm/yyyy o yyyy/mm/dd.
✓ Rango. Especifica el intervalo entre los cuales se puede tomar
valor un atributo.
✓ Restricción. Son restricciones particulares sobre un atributo.
✓ Soporte de NULL. El atributo puede aceptar valores NULL.
✓ Default. El atributo toma un valor por defecto cuando se
instancia.
VALORES VALIDOS
27. Cardinalidad: obligatoria y opcional
Uno a uno obligatorio: un empleado en una empresa
tiene uno y solo un puesto, un puesto pertenece a un
solo empleado
Uno a muchos opcional: un profesor en la Fac. de
Ingeniería puede dar 0 o varias clases y una clase está
dada por uno y solo un profesor
Muchos a muchos obligatorio: una materia puede
pertenecer a una o varias carreras, una carrera está
formada por varias materias.
Uno a uno opcional: Un paciente puede estar asignado
a un cuarto o a ninguno. En un cuarto puede haber
cero o un paciente
28. 1. Identificar entidades : Definir objetos como personas,
lugares o conceptos sobre los que se quiere tener
información.
2. Identificar atributos: Definir las “propiedades” de cada
entidad.
3. Determinar llave primaria de cada entidad.
4. Identificar relaciones entre las entidades.
5. Señalar cardinalidad entre las entidades.
METODOLOGIA
29. o Se tiene una empresa desarrollando varios
proyectos, a los que son asignados varios
empleados, pero cada empleado solo esta vinculado
a un proyecto, en un momento dado.
o Cada proyecto consume diferentes recursos en
cantidades determinadas; los empleados están a
cargo de un supervisor, que es un empleado
también.
o Los empleados pueden tener personas beneficiarias
(hijos, esposas, padres, etc.).
Ejercicio 1
48. Constraint Descripción
NOT NULL Se asegura que la columna no tenga valores nulos
UNIQUE Se asegura que cada valor en la columna no se repita
PRIMARY KEY Es una combinación de NOT NULL y UNIQUE
FOREIGN KEY Identifica de manera única una tupla en otra tabla
CHECK Se asegura que el valor en la columna cumpla
una condición dada
DEFAULT Coloca un valor por defecto cuando no hay un
valor especificado
INDEX Se crea por columna para permitir búsquedas más rápidas
Constraints (Restricciones)
49.
50. Normalización
La normalización es el proceso de
organizar los datos en una base de
datos. Esto incluye la creación de
tablas y que establece relaciones entre
aquellas tablas según reglas diseñadas
para proteger los datos y hacer la
base de datos que es más flexible al
eliminar redundancia y dependencia
incoherente.
Las bases de datos relacionales se
normalizan para:
• Evitar la redundancia de datos.
• Evitar problemas de actualización de
los datos en las tablas.
• Proteger la integridad de los datos.
51. alumno nivel_curso nombre_curso materia_1 materia_2
Juanito Maestría
Data
engineering
MySQL Python
Pepito Licenciatura Programación MySQL Python
Sin Normalizar
La normalización en las bases de datos relacionales es uno
de esos temas que, por un lado es sumamente importante.
Vamos a tratar de entender las formas normales (FN) de
una manera simple para que puedas aplicarlas en tus
proyectos profesionales.
52. alumnos
alumno_id alumno nivel_curso nombre_curso materia
1 Juanito Maestría Dataengineering MySQL
1 Juanito Maestría Dataengineering Python
2 Pepito Licenciatura Programación MySQL
2 Pepito Licenciatura Programación Python
Primera forma normal (1FN)
La regla de la Primera Forma Normal establece que las
columnas repetidas deben eliminarse y colocarse en tablas
separadas.
Formalmente, una tabla está en primera
forma normal si:
•Todos los atributos son atómicos. Un
atributo es atómico si los elementos del
dominio son simples e indivisibles.
•No debe existir variación en el número de
columnas.
•Los campos no clave deben identificarse
por la clave (dependencia funcional).
•Debe existir una independencia del
orden tanto de las filas como de las
columnas; es decir, si los datos cambian de
orden no deben cambiar sus significados.
53. alumnos
alumno_id alumno nivel_curso nombre_curso
1 Juanito Maestría Dataengineering
2 Pepito Licenciatura Programación
materias
materia_id alumno_id materia
1 1 MySQL
2 1 Python
3 2 MySQL
4 2 Python
Segunda forma normal (2FN)
Para que se pueda ser Segunda Forma
Normal primero se deber ser 1FN, con la
inclusión de que todas las columnas que
formen parte de una clave candidata deben
de dar información sobre la clave completa.
Formalmente, una tabla está en segunda
forma normal si:
• Está en 1FN
• Sí los atributos que no forman parte de
ninguna clave dependen de forma
completa de la clave principal. Es decir,
que no existen dependencias parciales.
• Todos los atributos que no son clave
principal deben depender únicamente de
la clave principal.
54. alumnos
alumno_id alumno curso_id
1 Juanito 1
2 Pepito 2
materias
materia_id alumno_id materia
1 1 MySQL
2 1 Python
3 2 MySQL
4 2 Python
cursos
curso_id nivel_curso nombre_curso
1 Maestría Dataengineering
2 Licenciatura Programación
Tercera forma normal (3FN)
Esta FN nos ayuda a separar conceptualmente las entidades que no
son dependientes.
Formalmente, una tabla está en tercera forma normal si:
Se encuentra en 2FN
No existe ninguna dependencia funcional transitiva en los atributos
que no son clave
Esta FN se traduce en que aquellos datos que no pertenecen a la
entidad deben tener una independencia de las demás y debe tener
un campo clave propio.
55. alumnos
alumno_id alumno curso_id
1 Juanito 1
2 Pepito 2
materias
materia_id alumno_id materia
1 1 MySQL
2 1 Python
3 2 MySQL
4 2 Python
cursos
curso_id nivel_curso nombre_curso
1 Maestría Dataengineering
2 Licenciatura Programación
Cuarta forma normal (4FN)
Esta FN nos trata de atomizar los datos multivaluados de manera que
no tengamos datos repetidos entre rows.
Formalmente, una tabla está en cuarta forma normal si:
Se encuentra en 3FN
Los campos multivaluados se identifican por una clave única
Esta FN trata de eliminar registros duplicados en una entidad, es
decir que cada registro tenga un contenido único y de necesitar
repetir la data en los resultados se realiza a través de claves foráneas.
materias_por_alumno
mpa_id materia_id alumno_id
1 1 1
2 2 1
3 1 2
4 2 2
56.
57. • SQL (por sus siglas en inglés Structured
Query Language; en español lenguaje de
consulta estructurada) es un lenguaje de
dominio específico utilizado en
programación, diseñado para
administrar, y recuperar información de
sistemas de gestión de bases de datos
relacionales. SQL consiste en un
lenguaje de definición de datos, un
lenguaje de manipulación de datos y un
lenguaje de control de datos.
SQL
58. Permite crear y modificar la estructura de una
base de datos.
• CREATE: Utilizado para crear nuevas tablas,
campos e índices.
• ALTER: Utilizado para modificar las tablas
agregando campos o cambiando la definición
de los campos.
• DROP: Empleado para eliminar tablas e
índices.
• TRUNCATE: Empleado para eliminar todos
los registros de una tabla.
• COMMENT: Utilizado para agregar
comentarios al diccionario de datos.
• RENAME: Tal como su nombre lo indica es
utilizado para renombrar objetos.
DDL (Data Definition Language)
59. Permite recuperar, almacenar, modificar,
eliminar, insertar y actualizar datos de una base
de datos.
SELECT: Utilizado para consultar registros de la
base de datos que satisfagan un criterio
determinado.
INSERT: Utilizado para cargar de datos en la
base de datos en una única operación.
UPDATE: Utilizado para modificar los valores
de los campos y registros especificados
DELETE: Utilizado para eliminar registros de
una tabla de una base de datos.
DML (Data Manipulation Language):
60. Permite crear roles, permisos e integridad
referencial, así como el control al acceso a
la base de datos.
GRANT: Usado para otorgar privilegios de
acceso de usuario a la base de datos.
REVOKE: Utilizado para retirar privilegios
de acceso otorgados con el comando
GRANT.
DCL (Data Control Language):
61. Permite administrar diferentes
transacciones que ocurren dentro de una
base de datos.
COMMIT: Empleado para guardar el
trabajo hecho.
ROLLBACK: Utilizado para deshacer la
modificación que hice desde el último
COMMIT.
TCL (Transactional Control Language):
62. Database T
able View
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE people (
person_id int,
last_name varchar(255),
first_name varchar(255),
address varchar(255),
city varchar(255)
);
CREATE VIEW v_brasil_customers AS
SELECT customer_name,contact_name
FROM customers
WHERE country = "Brasil";
64. El programa debe presentar por medio de una GUI un menú con las siguientes opciones (pueden ser
botones o literalmente un menú):
o Gestionar Equipos, Registrar Partido y Ver Resultados
• Al seleccionar la opción de “Gestionar Equipos” se debe presentar una GUI con los siguientes elementos:
• Listado de Equipos registrados (Text Area)• Formulario para agregar, modificar y eliminar un equipo
• Cada equipo debe tener: id (puede ser autoincrementado), nombre del equipo, nombre del entrenador
• Al seleccionar la opción de “Registrar Partido” se le debe presentar un formulario por medio de una GUI
para solicitar la información del partido al usuario
• En cada partido se debe registrar: fecha, equipo local, goles equipo local, equipo visitante y goles del
equipo visitante
o En el formulario de partido se debe hacer uso de un Combo Box para la selección de los equipos (local y
visitante), en cada opción se debe presentar el nombre del equipo
• Al seleccionar la opción de “Ver Resultados”, el programa debe mostrar en una GUI el listado de partidos
registrados ordenados por fecha del más reciente al más antiguo indicando toda la información del partido
con el siguiente formato:
o {Fecha} – {Nombre Equipo Local} {(Goles Equipo Local)} VS {(Goles Equipo Visitante)} {Nombre Equipo
Visitante} Ejm. 22-04-2021 – UIS (2) VS (1) UNAB
• Se debe sobrescribir el método toString para que devuelva la información de cada partido según el
formato solicitadoa)
Creación de la base de datos bd_campeonato (preferiblemente MySQL o MariaDB) Configuración de la
nueva conexión (JDBC) a la base de datos bd_campeonato y creación de una clase para gestionar la
conexión
Ejemplo Interfaz 1
65. Ejemplo Interfaz 1
public class Conexion {
public static void main(String[] args) throws SQLException {
final String JDBC_DRIVER ="com.mysql.jdbc.Driver";
final String DB_URL="jdbc:mysql://localhost:3306/bd_campeonato";
final String USER="root";
final String PASS="";
Connection conexion=null;
try{
Class.forName(JDBC_DRIVER);
conexion=DriverManager.getConnection(DB_URL,USER,PASS);
PreparedStatement st=conexion.prepareStatement("INSERT INTO Equipo(equipo
_nombre) values('Cucuta Deportivo')");
st.executeUpdate();
st.close();}
catch(Exception e){
e.getMessage();
}finally{
if(conexion!=null){
if(!conexion.isClosed()){
conexion.close();}}}}}
66. "La motivación más importante para el trabajo de
investigación que dio como resultado el modelo
relacional fue el objetivo de proporcionar un
límite claro y nítido entre los aspectos lógicos y
físicos de la gestión de bases de datos".
Frank Codd