4. ¿Qué es una Base de Datos?
Una base de datos es un conjunto de información organizada
que cumple con un objetivo común.
Sin embargo, hablando desde el punto de vista tecnológico,
estas bases de datos deben estar almacenadas de manera
persistente en un medio electrónico/digital.
5. Características que debe cumplir una BD:
• Versatilidad en la representación de la información.
• Desempeño.
• Mínima Redundancia.
• Capacidad de Acceso. (Compartida y concurrente).
• Simplicidad.
• Integridad.
• Seguridad y Privacidad.
6. SGBD
Sistema Gestor de Bases de Datos. (DBMS)
Es la herramienta de software que permite administrar una base de datos.
• Crear
• Modificar
• Poblar
• Actualizar
• Seleccionar
• Borrar
• Administrar privilegios
Dentro de los SGBD Relacionales más conocidos están:
• MySQL
• Sql Server
• Oracle
• DB2
• Informix
Para el presente curso utilizaremos el SGBDR Llamado Postgresql.
Dentro de los SGBD No Relacionales más conocidos:
• MongoDB
• FireBase
• CouchDB
• Neo4j
• Cassandra
11. Conceptos
Entidad Débil: Representa un objeto/elemento del Universo de discurso (Del problema a
resolver) pero que necesita de una relación con otra entidad para su identificación.
ENTIDAD
16. Tipos de Atributos
Atributo simple
y monovaluado
Atributo Identificador
Principal
Atributo Identificador
Alternativo
Atributo
multivaluado
Atributo
Opcional
Atributo
Compuesto
17. Restricciones
Tipo de Correspondencia de cardinalidades
Número máximo de ejemplares de una entidad asociados a una combinación de
ejemplares de las otras entidades en la interrelación, que puede ser 1 o N.
Persona Posee Vehículo
1:N
18. Restricciones
Cardinalidades Máximas y Mínimas
Son el número máximo y mínimo de ejemplares de una entidad que puede
relacionarse con un único ejemplar de la otra entidad que participa en la
interrelación. Se representan como (0,1), (1,1), (0,N), (1,N) y se situan en la línea
que conecta la entidad con el rombo que representa el tipo de interrelación.
Persona Posee Vehículo
1:N
(0,1) (0,N)
21. Ejemplo:
Se requiere un sistema de información que permita gestionar la información de los
Arriendos/Alquileres de las viviendas.
Este sistema debe contener la información del propietario de la(s) vivienda(s) y la información
que se debe contemplar para dicho propietario es: identificación, nombre completo, teléfonos de
contacto y opcionalmente el correo electrónico. La(s) vivienda(s) deben tener la información de:
código de la vivienda, dirección, la cual está compuesta por: calle y número, la vivienda debe
tener además una descripción y la cantidad de habitantes. Cada vivienda se encuentra ubicada
en una ciudad y dicha ciudad pertenece a un departamento/estado. Se debe tener la información
de los arriendos/alquileres los cuales tendrán la información de: fecha de inicio, fecha de fin,
valor mensual. Y también se requiere conocer la información del (los) inquilino(s), la información
de este debe ser: identificación, nombre completo y teléfonos.
34. Traducción del MER al MR:
Persona
Nombre Edad Estatura
ENTIDADES, ATRIBUTOS SIMPLES Y MONOVALUADOS RELACIONES Y ATRIBUTOS
PERSONA(Nombre, Edad, Estatura)
dominio(Nombre) : carácter de tamaño n
dominio(Edad): entero de 0 hasta 150
dominio(Estatura): decimal de 0 hasta 2.90
35. Traducción del MER al MR:
Persona
Nombre Edad Email
ENTIDADES, ATRIBUTOS OPCIONALES RELACIONES Y ATRIBUTOS
PERSONA(Nombre, Edad, Email*)
36. Traducción del MER al MR:
Persona
Nombre
ENTIDADES, ATRIBUTOS COMPUESTOS
RELACIONES Y ATRIBUTOS
PERSONA(Nombre_Nombres, Nombre_Apellidos, Edad)
dominio(Nombre_Nombres) : carácter de tamaño n
dominio(Nombre_Apellidos) : carácter de tamaño n
dominio(Edad): entero de 0 hasta 150
Nombres Apellidos
Edad
37. Traducción del MER al MR:
Persona
Nombre
ENTIDADES, ATRIBUTOS MULTIVALUADOS
RELACIONES Y ATRIBUTOS
PERSONA(Nombre, Edad)
Teléfonos
Edad
TELEFONOS(Telefono)
38. Traducción del MER al MR:
Persona
Nombre
ENTIDADES, ATRIBUTOS MULTIVALUADOS
CLAVES PRIMARIAS Y CLAVES FORANEAS RELACIONES Y ATRIBUTOS
PERSONA(Nombre, Edad)
Teléfonos
Edad
TELEFONOS(Nombre, Telefono)
TELEFONOS(Nombre, Telefono)
PERSONA
O
39. Traducción del MER al MR:
RELACIONES
CARDINALIDAD 1:1
PERSONA CARNET
Tiene
un
1:1
PERSONA(Nombre, edad, dirección, Codigo)
CARNET(Codigo, Nombre, cargo, tiposangre)
40. Traducción del MER al MR:
RELACIONES
CARDINALIDAD 1:N
PERSONA VEHÍCULO
Posee
1:N
PERSONA(Nombre, edad, dirección)
VEHÍCULO(Nombre, modelo, color)
41. Traducción del MER al MR:
RELACIONES
CARDINALIDAD N:M
ALUMNO MATERIA
Matricula
N:M
ALUMNO(identificacion, nombre, edad)
MATERIA(codigo, nombre, salon, horario)
MATRICULA(identificacion, codigo)
42. PROPIETARIO
Identifi.
nombre
nombres apellidos
telefonos email
VIVIENDA
código
dirección
calle número
descripción
cant_habitantes
Posee
1:N
CIUDAD
Ubicada
N:1
código nombre
DEPARTAMENTO
Pertenece
código nombre
N:1
ARRIENDO
código f_inicio f_fin valor_mensual
Participa
1:N
INQUILINO
Identifi.
nombre
nombres apellidos
telefonos
Realizado
N:M
(1:N)
(1:1) (0:N) (1:1)
(1:N)
(1:1)
(1:1)
(0:N)
(1:N)
(1:N)
46. Restricciones:
• Restricción Nulo: No permite que el valor del atributo sea nulo.
• Restricción de Identidad: No permite tener dos valores repetidos en las
claves primarias.
• Restricción de Integridad de Entidad: No permite tener valores nulos en la
clave primaria.
• Restricción de Integridad Referencial: No permite tener valores en la clave
foránea que no existan en la clave primaria. Sin embargo, si permite tener
valores nulos en la clave foránea.
• Restricción de Clave Alterna: No permite valores repetidos en la clave
alterna.
• Restricción de Dominio: Los datos deben ser del dominio específico.
Ejemplo: dominio de los números enteros comprendidos entre 0 y 18.
49. Violaciones de Restricciones
OPERACIÓN IDENTIDAD ENTIDAD REFERENCIAL UNICA DOMINIO NULO
INSERTAR SI
Sin Alternativas
SI
Sin Alternativas
SI
Alternativa
NULO
SI
Alternativa
NULO
SI
Sin Alternativas
SI
Alternativa
VALOR X
DEFECTO
ELIMINAR NO NO SI (Si es de la
tabla padre que
contiene
información en
las tablas hijo)
Alternativa
NULIFICAR,
CASCADA,
RESTRINGIR
NO NO NO
ACTUALIZAR SI
Sin Alternativas
SI
Sin Alternativas
SI (Padre a Hijo)
Alternativas
iguales a
Eliminar.
SI
Alternativa
NULO
SI
Sin Alternativas
SI
Sin Alternativas
50. Lenguaje SQL
Structured Query Language por sus siglas en inglés.
Lenguaje de consulta estructurado, es el lenguaje estándar para la administración de la
información en los SGBDR.
51. Los 3 principales Grupos de SQL
• DDL: Lenguaje de Definición de Datos (Data Definition
Language).
• DML: Lenguaje de Manipulación de Datos (Data Manipulation
Language).
• DCL: Lenguaje de Control de Acceso a Datos (Data Control
Language).
52. DDL – Data Definition Language
CREAR
MODIFICAR
BORRAR
59. DDL – MODIFICAR BD.
ALTER DATABASE nombre RENAME TO nuevo_nombre
ALTER DATABASE nombre OWNER TO nuevo_usuario
ALTER DATABASE nombre SET TABLESPACE nuevo_tablespace
60. DDL – MODIFICAR TABLAS.
ALTER TABLE nombre ADD COLUMN campoN tipo_dato (tamaño)
ALTER TABLE nombre DROP COLUMN campoN
ALTER TABLE nombre ALTER COLUMN campoN SET NOT NULL
ALTER TABLE nombre ALTER COLUMN campoN DROP NOT NULL
ALTER TABLE nombre ADD CONSTRAINT nombre_constraint FOREIGN KEY (campoN, … campoM)
REFERENCES otra_tabla (campoN, …, campoM) ON DELETE acción ON UPDATE acción
ALTER TABLE nombre DROP CONSTRAINT nombre_constraint
ALTER TABLE nombre ALTER COLUMN campoN SET DEFAULT valor_x_defecto
ALTER TABLE nombre ALTER COLUMN campoN DROP DEFAULT
ALTER TABLE nombre ALTER COLUMN campoN TYPE nuevo_tipo (tamaño)
ALTER TABLE nombre RENAME COLUMN columnaN TO columnaM
ALTER TABLE nombre RENAME TO nuevo_nombre
62. DCL – GRANT and REVOKE
GRANT: Permite realizar una acción sobre un objeto.
GRANT acción ON objeto TO usuario
REVOKE: Restringe realizar una acción sobre un objeto.
REVOKE acción ON objeto FROM usuario
63. DML – Manipulación de Datos
INSERT: Ingresar información
UPDATE: Modificar Información
DELETE: Borrar Información
64. DML – INSERT
INSERT INTO tabla (campo1, campo2, …, campoN) VALUES (valor1, valor2, ….,
valorN)
INSERT INTO tabla (campo5, campo3, campo1, campo18, …, campoN) VALUES
(valor5, valor1, valor18, …, valorN)
INSERT INTO tabla VALUES (valor1, valor2, …, valorN)
INSERT INTO tabla VALUES (DEFAULT, valorN, valorM, …, valorZ)
INSERT INTO tabla VALUES (valorA1, valorA2, … valorAN),
(valorB1, valorB2, …, valorBN),
(valorC1, valorC2, … valorCN)
INSERT INTO tabla SELECT consulta_aqui
65. DML – UPDATE
UPDATE tabla SET campo1 = valor1, campo2
= valor2, …, campoN = valorN WHERE campoM
= valorM
Where:
WHERE campoM = valorM (=, >, <, <>)
WHERE campoM BETWEEN valor1 AND valor2
WHERE campoM IN (valor1, valor2, …,
valorN)
WHERE campoM IN SELECT consulta
WHERE campoM NOT IN…
66. DML – DELETE
DELETE FROM tabla WHERE campoN = valorN
Where:
WHERE campoM = campoM (=, >, <, <>)
WHERE campoM BETWEEN valor1 AND valor2
WHERE campoM IN (valor1, valor2, …, valorN)
WHERE campoM IN SELECT consulta
WHERE campoM NOT IN…
71. SELECCIÓN
Se conoce también como FILTRO. Y nos permite seleccionar
solamente unos registros de una relación que cumplen con
uno o varios criterios.
SELECT campo1, campo2, …, campoN
FROM tabla
WHERE campo1 {cumple la condición}
72. UNIÓN
Dos relaciones son compatibles en unión si sus dominios coinciden en
número y en orden. Y es la disyunción de los conjuntos. Es decir, el
elemento está en uno o en el otro conjunto.
R1(a1, a2, …, an)
R2(b1, b2, …, bn)
dominio R1(ai) = dominio R2(bi)
74. INTERSECCIÓN
Dos relaciones son compatibles en intersección si sus dominios
coinciden en número y en orden. Y es la conjunción de los conjuntos. Es
decir, el elemento tiene que estar en ambos conjuntos.
R1(a1, a2, …, an)
R2(b1, b2, …, bn)
dominio R1(ai) = dominio R2(bi)
76. INTERSECCIÓN - EQUIVALENCIA
SELECT campo1, campo2, …,
campoN
FROM tabla1
WHERE (campo1, campo2, …,
campoN)
IN (SELECT otro1, otro2, …,
otroN
FROM tabla2)
77. DIFERENCIA
Dos relaciones son compatibles en diferencia si sus dominios coinciden
en número y en orden. Y es la diferencia de los conjuntos. Es decir, el
elemento tiene que estar en el primer conjunto, pero no en el segundo.
R1(a1, a2, …, an)
R2(b1, b2, …, bn)
dominio R1(ai) = dominio R2(bi)
79. DIFERENCIA - EQUIVALENCIA
SELECT campo1, campo2, …, campoN
FROM tabla1
WHERE (campo1, campo2, …, campoN)
NOT IN (SELECT otro1, otro2, …,
otroN
FROM tabla2)
80. PRODUCTO CARTESIANO
El producto cartesiano no exige la compatibilidad de dominios ni en
número ni en orden.
R1(a1, a2, a3, a4, …, aN)
R2(b1, b2, …, bX)
Q(a1, a2, a3, a4, …, aN, b1, b2, …, bX)
82. CROSS JOIN
Es el resultado del producto cartesiano de las relaciones que
intervienen en la combinación.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a CROSS JOIN tabla2 as b
83. NATURAL JOIN
Combina dos relaciones de manera natural entre la clave primaria de
una y la clave foránea de la otra.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a NATURAL INNER JOIN tabla2 as b
84. INNER JOIN
Combina dos relaciones cuando se necesita especificar el (los)
atributo(s) con los que se combinarán.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a INNER JOIN tabla2 as b ON a.campo1 = b.campo1
85. LEFT JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
añade todas aquellas filas (registros) de la relación nombrada en la
parte izquierda de la sentencia que no satisfacen la combinación con
la relación de la parte derecha.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a LEFT JOIN tabla2 as b ON a.campo1 = b.campo1
86. RIGHT JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
añade todas aquellas filas (registros) de la relación nombrada en la
parte derecha de la sentencia que no satisfacen la combinación con la
relación de la parte izquierda.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a RIGHT JOIN tabla2 as b ON a.campo1 = b.campo1
87. FULL JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
realiza un Left Join y por último un Right Join.
SELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …,
FROM tabla1 as a FULL JOIN tabla2 as b ON a.campo1 = b.campo1
89. ¿PARA QUÉ SIRVE?
La normalización se utiliza para verificar si una relación no tiene
problemas como:
• Redundancia.
• Problemas de:
• Inserción
• Actualización
• Borrado
90. Cálculo de las DEPENDENCIAS FUNCIONALES
En una relación:
R(Atributos, Dependencias)
Atributos: {A, B}
B depende funcionalmente de A si para cada valor de A solamente existe un valor de B.
Notación: A -> B
Ejemplo: Identificacion -> Nombre
91. Cálculo de las DEPENDENCIAS REDUNDANTES
En una relación:
R(Atributos, Dependencias)
Atributos: {A, B, C}
Dependencias: {A->B; B->C; A->C}
La dependencia A->C es redundante ya que C depende transitivamente de A.
92. Cálculo de las CLAVES CANDIDATAS
En una relación:
R(Atributos, Dependencias)
Atributos: {A, B, C, D}
Dependencias: {A->B,D; B->C;}
A+ = {A,B,C,D}, B+{B, C}, C+{C}, D+{D}.
Por lo tanto la superclave será A ya que este atributo puede determinar toda la R.
94. Descripción
1FN
• Cada atributo es simple.
• Cada atributo es monovaluado.
2FN
• Se encuentra en 1FN.
• Cada atributo no principal tiene DF de la clave candidata.
3FN
• Se encuentra en 2FN.
• No existe ningún atributo no principal que dependa transitivamente de clave candidata.
FNBC
• Si y solo si todo determinante es la clave candidata.
95. Ejemplos:
1FN
NOMBRE SKILLS
ALVARO FELIPE HTML, CSS,
JAVASCRIPT
ALEXYS LOZADA JAVA, JAVASCRIPT,
DBA
NOMBRE SKILLS
ALVARO FELIPE HTML
ALVARO FELIPE CSS
ALVARO FELIPE JAVASCRIPT
ALEXYS LOZADA JAVA
ALEXYS LOZADA JAVASCRIPT
ALEXYS LOZADA DBA
96. Ejemplos:
2FN
ESTUDIANTE MATERIA NOTA SALON
PEDRO MATEMÁTICAS 5 204
PABLO MATEMÁTICAS 4 204
JUAN ESPAÑOL 4 111
ESTUDIANTE MATERIA NOTA
PEDRO MATEMÁTICAS 5
PABLO MATEMÁTICAS 4
JUAN ESPAÑOL 4
MATERIA SALON
MATEMÁTICAS 204
ESPAÑOL 111
98. Ejemplos:
FNBC
IDENTIFICACION NOMBRE MATERIA NOTA
123 PEDRO MATEMATICAS 3
123 PEDRO ESPAÑOL 4
233 PABLO MATEMATICAS 4
IDENTIFICACION NOMBRE
123 PEDRO
233 PABLO
IDENTIFICACION MATERIA NOTA
123 MATEMATICAS 3
123 ESPAÑOL 4
233 MATEMATICAS 4
100. Ejemplo
Profesor Oficina Teléfono Materia Créditos Libro Autor Año
Pedro 101 2454545 MATEMÁTICAS 5 ALGEBRA BALDOR 1970
Pedro 101 2454545 ESPAÑOL 3 LITERATURA ANÓNIMO 1950
Pablo 105 5414141 MATEMÁTICAS 5 CÁLCULO I BOUNETE 1985
Pablo 105 5414141 MATEMÁTICAS II 4 CÁLCULO I BOUNETE 1985
Pablo 105 5414141 GEOGRAFÍA 2 ALGEBRA BALDOR 1970
Juan 102 3696969 CONTABILIDAD 1 IMPUESTOS ANTORINI 1999
Lucas 103 4585858 CONTABILIDAD 1 IMPUESTOS ANTORINI 1999
Lucas 103 4585858 MATEMÁTICAS 3 5 CÁLCULO 2 BEYONCE 1986
Lucas 103 4585858 ESPAÑOL 3 LENGUAS GAITÁN 1980
101. Problemas
Inserción:
• No se puede ingresar un Profesor si no se le ha asignado una materia la cual debe tener a su vez un libro y salón.
• No se puede ingresar una Materia si no existe un profesor asignado y un libro y un salón.
• Etc…
Borrado:
• No se puede borrar un solo registro si se quiere eliminar un profesor.
• No se puede borrar un solo registro si se quiere eliminar un libro.
• “ “ “ “ “ “ una materia.
• Si se eliminan los registros de un profesor, se estaría borrando la información de las materias.
• Si se elimina la única materia que dicta un profesor, se pierde la información de dicho profesor.
102. Encontrando las DF
Un profesor tiene una única oficina y un único teléfono:
• Profesor -> Oficina, Teléfono
Una oficina tiene un único teléfono
• Oficina -> Teléfono
Una materia tiene un número de créditos
• Materia -> Créditos
Un libro tiene un autor y año de edición
• Libro -> Autor, Año
Un profesor puede dictar más de una materia
• Profesor -- / -> Materia
Una materia tiene más de un profesor
• Materia -- / -> Profesor
Un profesor en una materia utiliza un solo libro el
cual tiene un autor y un año de edición
• Profesor, Materia -> Libro, Autor, Año
103. Encontrando las DF (Resumen)
Dependencias: {
Profesor -> Oficina, Teléfono
Oficina -> Teléfono
Materia -> Créditos
Libro -> Autor, Año
Profesor -- / -> Materia
Materia -- / -> Profesor
Profesor, Materia -> Libro, Autor, Año
}
104. Encontrando las DF (Resumen)
Dependencias: {
Profesor -> Oficina
Oficina -> Teléfono
Materia -> Créditos
Libro -> Autor, Año
Profesor, Materia -> Libro
}
107. Universo de Discurso
Se requiere un sistema de información que nos permita realizar la compra y venta de productos a diferentes
proveedores y clientes.
El sistema debe tener un proceso de login para poder realizar las acciones de compra y venta.
Los productos deben tener la siguiente información: codigo, nombre, cantidad y precio. Los proveedores y clientes
deben tener la siguiente información: identificación, nombre, dirección y teléfono.
Las compras deben tener la información de fecha, proveedor, producto, cantidad y valor. Las ventas deben tener: la
fecha, el cliente, el producto, cantidad y valor de venta.
Se debe tener la información de auditoría cuando se haga una compra o una venta o cuando se modifique la
información del producto. Cuando se realice una compra se debe incrementar la cantidad del producto y cuando se
realice una venta se deberá disminuir la cantidad del producto vendido.
Se debe poder consultar la información de las ventas detalladas, compras detalladas y del inventario actual.
108. PERFIL USUARIO
Id perfil Id usuario
clave
nombre
Tiene
TERCERO
Id identificación
nombre dirección teléfono
PRODUCTO
Id nombre
cantidad precio
Actualiza
COMPRA
Id fecha
cantidad valor
Realiza
A-un
Tiene
1:N
1:N
AUDITORIA
Id fecha
acción tabla
anterior
nuevo
Audita
N:1
1:N 1:N
N:1