Objetivo: Crear bases de datos relacionales y diagramas de entidad relación sobre un sistema gestor de bases de datos o DBMS usando técnicas de modelamiento para almacenar la información de una organización, entidad o proceso
1. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
1
02/03/2022
Diseño físico
relacional
Unidad 3
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para
uso de los cursos de Bases de Datos
3. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
3
02/03/2022
Objetivo general de la Unidad 3
Crear bases de datos relacionales y diagramas de entidad relación
sobre un sistema gestor de bases de datos o DBMS usando técnicas de
modelamiento para almacenar la información de una organización,
entidad o proceso
4. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
4
02/03/2022
Referencias
▪ https://www.cafetero100.info/2011/07/25/tutorial-
phpmyadmin/
▪ https://www.w3schools.com/sql/sql_datatypes.asp
▪ https://desarrolloweb.com/articulos/1054.php
5. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
5
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
6. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
6
02/03/2022
• MySQL es un programa de licencia open-source y gratuito pero que,
sin embargo, está mantenido por una empresa, MySQL AB, con
sede en Suecia.
• El código fuente de MySQL está sólo relativamente abierto y
disponible para modificaciones, puesto que es la empresa MySQL
AB la que contrata y coordina los trabajos de mantenimiento del
producto.
• Los trabajadores contratados, procedentes de todo el mundo, son
usuarios del producto que realizan sus encargos a través de
Internet.
MySql Gestor de Base de Datos Open
Source: Origen e Historia
SERVER
7. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
7
02/03/2022
SERVER
Mysql Gestor de Base de Datos Open
Source: Arquitectura del Servidor
Podemos imaginar la arquitectura interna de MySQL dividida en tres
capas. Se trata de una división lógica, que no coincide necesariamente
con la división interna del código, pero ayuda a entender los
conceptos. Las tres capas son:
• Capa de Conexión: En la que reside la funcionalidad que conecta
MySQL con otros sistemas y lenguajes (APIs, sockets, ODBC, etc.)
• Capa de Lógica: En la que reside la lógica para procesar
consultas SQL (sentencias, planificación, ejecución, cachés, etc.)
• Capa de Almacenamiento: En la que reside la lógica para
almacenar y acceder a los datos de las tablas. Una característica
de MySQL es que puede utilizar distintos motores de
almacenamiento.
8. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
8
02/03/2022
Mysql Gestor de Base de Datos Open
Source: Arquitectura del Servidor
SERVER
9. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
9
02/03/2022
SERVER
Mysql Gestor de Base de Datos Open
Source: Motores de Almacenamiento
Al diseñar una base de datos con MySQL será necesario decidir qué
motores de almacenamiento se utilizaran. MySQL dispone, actualmente,
de los siguientes motores de almacenamiento:
• MyISAM: Es el motor por defecto. Es muy rápido pero no
transaccional.
• InnoDB: Es transaccional, incluye integridad referencial.
• Memory (Heap): Es una tabla MyISAM, pero almacenada en
memoria, no en disco. Es todavía más rápida.
• Archive: Es una tabla MyISAM, pero comprimida y de sólo lectura.
• MRG_MyISAM: Es una agregación de tablas MyISAM. Las tablas
agregadas deben ser exactamente iguales.
10. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
10
02/03/2022
SERVER
Mysql Gestor de Base de Datos Open
Source: Motores de Almacenamiento
• CSV: Es una tabla que se almacena en un fichero de valores
separados por comas.
• FEDERATED: Se trata de una tabla que, realmente, reside en otro
servidor MySQL.
• Blackhole: Esta es una base de datos en la que todo lo que metes,
desaparece.
Puede utilizar distintos motores en una misma base de datos, incluso
pueden ser utilizados en una misma.
La decisión correcta depende en gran parte del uso futuro que tendrá la
base de datos, lo que suele ser difícil saberlo con exactitud durante el
diseño.
11. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
11
02/03/2022
InnoDB
▪ Soporte de transacciones
▪ Bloqueo de registros
▪ Nos permite tener las características ACID (Atomicity,
Consistency, Isolation and Durability: Atomicidad,
Consistencia, Aislamiento y Durabilidad en español),
garantizando la integridad de nuestras tablas.
▪ Es probable que si nuestra aplicación hace un uso
elevado de INSERT y UPDATE notemos un aumento
de rendimiento con respecto a MyISAM.
▪ Recomendado para alto volumen de datos como un
datawarehouse
12. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
12
02/03/2022
MyISAM
▪ Mayor velocidad en general a la hora de recuperar datos.
▪ Recomendable para aplicaciones en las que dominan las
sentencias SELECT ante los INSERT / UPDATE.
▪ Ausencia de características de atomicidad ya que no tiene
que hacer comprobaciones de la integridad referencial, ni
bloquear las tablas para realizar las operaciones, esto nos
lleva como los anteriores puntos a una mayor velocidad.
13. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
13
02/03/2022
InnoDB storage
▪ InnoDB se recupera de un problema volviendo a ejecutar sus logs, mientras que
MyISAM necesita repasar todos los índices y tablas que hayan sido actualizados y
reconstruirlos si esos cambios no han sido escritos en disco. El primer proceso
requiere más o menos el mismo tiempo siempre, mientras que el segundo aumenta
con el tamaño de la base de datos.
▪ InnoDB almacena físicamente los registros en el orden de la clave primaria,
mientras que MyISAM los guarda en el orden en que fueron añadidos. Cuando la
clave primaria se escoge de acuerdo con las necesidades de las consultas más
habituales esto puede suponer una mejora sustancial del rendimiento. Por otro
lado, si los datos se insertan en un orden que difiera sustancialmente del orden de
la clave primaria, se obliga a InnoDB a reordenar mucho los datos para
mantenerlos en el orden adecuado.
▪ InnoDB no dispone de la compresión de datos de la que disfruta MyISAM, de
modo que tanto el espacio en disco como la caché en la memoria RAM pueden ser
más grandes. Este problema se ha reducido en MySQL 5.0, reduciéndolo en
aproximadamente un 20%.
14. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
14
02/03/2022
Limitaciones de MyISAM
▪ Limitaciones de MyISAM
▪ No tiene llaves foraneas ni deletes ni updates en cascada
▪ No tiene habilidades de rollback
▪ No cumple con los estandares de ACID
▪ Limite de rows de 4,284,867,296
▪ Maximo 64 indices por row
▪ MyISAM usa bloqueo a nivel tabla, inconveniente para
inserts/deletes y updates muy altos
▪ La velocidad de lectura es superior a INNODB
15. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
15
02/03/2022
Limitaciones de INNODB
▪ No tiene índices de texto completo
▪ No se puede comprimir
▪ Las tablas ocupan mas espacio
16. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
16
02/03/2022
Cuando usar cada Engine
▪ ¿Cuándo usar MyISAM?
▪ El engine de MyISAM fue hecho para cuando la base de
datos recibe muchos mas querys que updates, ya que
las operaciones de lectura son mucho mas rápidas
▪ MyISAM se recomienda usar cuando los insert/update
tengan un ratio del 15%
▪ ¿Cuándo usar INNODB?
▪ INNODB usa bloqueos a nivel ROW, tiene capacidades
de commit y recovery, es tolerante a fallas
17. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
17
02/03/2022
SERVER
Caracteristicas MyISAM Memory DBD InnoDB
Transacciones No No Sí Sí
Granularidad Tabla Tabla Página (8KB) Fila
Almacenamiento Un
Fichero
Ficheros
Separados
En
Memoria
Un fichero por
Tabla
Tablespace
Niveles de Aislamiento Ninguno Ninguno Read
Commited
Todos
Formato Portable Si N/A No Si
Integridad Referencial No No No Si
Clave Primaria con
Datos
No No Si Si
Caché No Si Si Si
Mysql Gestor de Base de Datos Open
Source: Motores de Almacenamiento
18. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
18
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
19. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
19
02/03/2022
PhpMyAdmin (MySql)
▪ Herramienta escrita en PHP con la intención de
manejar la administración de MySQL a través de
páginas web, utilizando un navegador web.
▪ Actualmente puede crear y eliminar bases de datos,
crear, eliminar y alterar tablas, borrar, editar y
añadir campos, ejecutar cualquier sentencia SQL,
administrar claves en campos, administrar
privilegios, exportar datos en varios formatos
21. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
21
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
25. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
25
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
26. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
26
02/03/2022
MySQL Data Types (Version 8.0)
Data type Description
CHAR(size) A FIXED length string (can contain letters, numbers, and special characters). The size parameter
specifies the column length in characters - can be from 0 to 255. Default is 1
VARCHAR(size) A VARIABLE length string (can contain letters, numbers, and special characters).
The size parameter specifies the maximum column length in characters - can be from 0 to 65535
BINARY(size) Equal to CHAR(), but stores binary byte strings. The size parameter specifies the column length
in bytes. Default is 1
VARBINARY(size) Equal to VARCHAR(), but stores binary byte strings. The size parameter specifies the maximum
column length in bytes.
TINYBLOB For BLOBs (Binary Large Objects). Max length: 255 bytes
TINYTEXT Holds a string with a maximum length of 255 characters
TEXT(size) Holds a string with a maximum length of 65,535 bytes
BLOB(size) For BLOBs (Binary Large Objects). Holds up to 65,535 bytes of data
MEDIUMTEXT Holds a string with a maximum length of 16,777,215 characters
MEDIUMBLOB For BLOBs (Binary Large Objects). Holds up to 16,777,215 bytes of data
LONGTEXT Holds a string with a maximum length of 4,294,967,295 characters
LONGBLOB For BLOBs (Binary Large Objects). Holds up to 4,294,967,295 bytes of data
ENUM(val1, val2, val3, ...) A string object that can have only one value, chosen from a list of possible values. You can list up
to 65535 values in an ENUM list. If a value is inserted that is not in the list, a blank value will be
inserted. The values are sorted in the order you enter them
SET(val1, val2, val3, ...) A string object that can have 0 or more values, chosen from a list of possible values. You can list
up to 64 values in a SET list
String
Data
Types
27. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
27
02/03/2022
MySQL Data Types (Version 8.0)
Numeric
Data
Types
Data type Description
BIT(size) A bit-value type. The number of bits per value is specified in size. The size parameter can hold a value from 1 to 64. The default value
for size is 1.
TINYINT(size) A very small integer. Signed range is from -128 to 127. Unsigned range is from 0 to 255. The size parameter specifies the maximum
display width (which is 255)
BOOL Zero is considered as false, nonzero values are considered as true.
BOOLEAN Equal to BOOL
SMALLINT(size) A small integer. Signed range is from -32768 to 32767. Unsigned range is from 0 to 65535. The size parameter specifies the maximum
display width (which is 255)
MEDIUMINT(size) A medium integer. Signed range is from -8388608 to 8388607. Unsigned range is from 0 to 16777215. The size parameter specifies
the maximum display width (which is 255)
INT(size) A medium integer. Signed range is from -2147483648 to 2147483647. Unsigned range is from 0 to 4294967295. The size parameter
specifies the maximum display width (which is 255)
INTEGER(size) Equal to INT(size)
BIGINT(size) A large integer. Signed range is from -9223372036854775808 to 9223372036854775807. Unsigned range is from 0 to
18446744073709551615. The size parameter specifies the maximum display width (which is 255)
FLOAT(size, d) A floating point number. The total number of digits is specified in size. The number of digits after the decimal point is specified in
the d parameter. This syntax is deprecated in MySQL 8.0.17, and it will be removed in future MySQL versions
FLOAT(p) A floating point number. MySQL uses the p value to determine whether to use FLOAT or DOUBLE for the resulting data type. If p is
from 0 to 24, the data type becomes FLOAT(). If p is from 25 to 53, the data type becomes DOUBLE()
DOUBLE(size, d) A normal-size floating point number. The total number of digits is specified in size. The number of digits after the decimal point is
specified in the d parameter
DOUBLE
PRECISION(size, d)
DECIMAL(size, d) An exact fixed-point number. The total number of digits is specified in size. The number of digits after the decimal point is specified in
the d parameter. The maximum number for size is 65. The maximum number for d is 30. The default value for size is 10. The default
value for d is 0.
DEC(size, d) Equal to DECIMAL(size,d)
28. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
28
02/03/2022
MySQL Data Types (Version 8.0)
Note: All the numeric data types may have
an extra option: UNSIGNED or ZEROFILL.
If you add the UNSIGNED option, MySQL
disallows negative values for the column. If
you add the ZEROFILL option, MySQL
automatically also adds the UNSIGNED
attribute to the column.
Numeric
Data
Types
29. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
29
02/03/2022
MySQL Data Types (Version 8.0)
Data type Description
DATE A date. Format: YYYY-MM-DD. The supported range is from '1000-01-
01' to '9999-12-31'
DATETIME(fsp) A date and time combination. Format: YYYY-MM-DD hh:mm:ss. The
supported range is from '1000-01-01 00:00:00' to '9999-12-31
23:59:59'. Adding DEFAULT and ON UPDATE in the column definition
to get automatic initialization and updating to the current date and time
TIMESTAMP(fsp) A timestamp. TIMESTAMP values are stored as the number of seconds
since the Unix epoch ('1970-01-01 00:00:00' UTC). Format: YYYY-MM-
DD hh:mm:ss. The supported range is from '1970-01-01 00:00:01' UTC
to '2038-01-09 03:14:07' UTC. Automatic initialization and updating to
the current date and time can be specified using DEFAULT
CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP
in the column definition
TIME(fsp) A time. Format: hh:mm:ss. The supported range is from '-838:59:59' to
'838:59:59'
YEAR A year in four-digit format. Values allowed in four-digit format: 1901 to
2155, and 0000.
MySQL 8.0 does not support year in two-digit format.
Date
and
Time
Data
Types
30. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
30
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
31. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
31
02/03/2022
Contenido
▪ Diseño físico Relacional
▪ Herramientas gráficas proporcionadas por los SGBD
▪ Intérprete de Comandos de los SGDB
▪ Tipos de Datos
▪ Creación y eliminación de Bases de Datos y tablas
▪ Creación de Bases de Datos y tablas en el SGBD
32. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
32
02/03/2022
Creación de Bases de Datos
33. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
33
02/03/2022
Creación de tablas
▪ Crearemos una tabla que se llame «Distrito».
▪ Usa la opción de Create new table.
▪ Escribe en el lugar correcto el nombre de la table: Distrito,
y la cantidad de columnas que tendrá la tabla (3 en este
caso) en el cajón de texto FIELDS.
34. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
34
02/03/2022
Creación de tablas
▪ Da clic en GO y debes ver algo parecido a
la gráfica siguiente:
▪ El nombre de cada columna escríbelo en el
FIELD.
35. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
35
02/03/2022
Creación de tablas
▪ Cuando finalices de capturar los datos, da
clic en SAVE, o guardar.
▪ Aparecerá una ventana similar a la
siguiente:
36. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
36
02/03/2022
Diseño físico
relacional
Unidad 3
Final de la unidad