Saltar la navegación

1. Lenguaje de definición de datos

Instalación de un SGBD

Para realizar las prácticas de la asignatura trabajaremos con MySQL, es un gestor de bases de datos relacional de licencia GPL. Internamente un motor de almacenamiento es el encargado de almacenar en último término los datos de las tablas en dispositivos físicos.

El manual de referencia de MySQL está disponible en https://dev.mysql.com/doc/refman/8.0/en/, en el capítulo 2 detalla las opciones de instalación y actualización para diferentes plataformas como windows, macOS, Linux, Solaris y FreeBSD, que puedes consultar en https://dev.mysql.com/doc/refman/8.0/en/installing.html.

Como ejemplo de tutorial de instalación en windows se sugiere revisar el siguiente enlace:

Instalación de MySQL

Si trabajas con el Sistema Operativo Linux, para instalar desde los repositorios de algún Linux basado en debian, escribir en la terminal:
sudo apt-get install mysql-server

Para instalar MySQL Workbench, desde la aplicación "Ubuntu Software" explorar "Workbench" clic en "instalar". Al finalizar, desde la terminal asigna permisos para conexión con el comando:
snap connect mysql-workbench-community:password-manager-service

Tarea 1.1 - Instalación

Fecha de entrega:
6 de septiembre
Modalidad:
Individual

Desarrollo de la actividad:

  • Instalar MySQL Server
  • Instalar MySQL Workbench
  • Capturar pantallas durante la instalación
  • Realizar un reporte de la instalación

Detalles de la entrega:

  • Enviar al correo jpena@suryucatan.tecnm.mx
  • Adjuntar archivo en formato PDF
  • Escribir el correo con asunto: 5B + Apellido1 Nombre1  + - Tarea 1.1 (ejemplo del asunto de correo: 5B Peña Jimmy - Tarea 1.1)

Esquema de la base de datos

1. Visualizar Bases de Datos

Mediante la sentencia SHOW se encuentran las bases de datos que existen actualmente en el servidor:
mysql> SHOW DATABASES;

Si la base de datos test existe, intente acceder a ella:
mysql> USE test

2. Crear Bases de Datos

En ambientes Linux, los nombres de las bases de datos son case sensitive (al contrario que las palabras clave), de modo que siempre debe referirse a su base de datos como se escribió al crearla. Esto también se aplica a los nombres de tablas. Esta restricción no existe en Windows.

Sintaxis:

CREATE DATABASE [IF NOT EXISTS] db_name;

Ejemplo:

CREATE DATABASE biblioteca;

Al crear una base de datos, ésta no se selecciona para su uso, debe hacerlo explícitamente.
mysql> USE biblioteca

3. Visualizar Tablas

La creación de la base de datos ha sido una tarea sencilla, pero hasta ahora permanece vacía, como muestra SHOW TABLES:
mysql> SHOW TABLES;

DESCRIBE puede ser utilizada en cualquier momento, por ejemplo, si olvida los nombres o el tipo de dato de las columnas de la tabla.

mysql> DESCRIBE [nombreTabla];

4. Crear Tablas

Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:

Sintaxis

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name;

create_definition:
   column_definition
   | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
   | KEY [index_name] [index_type] (index_col_name,...)
   | INDEX [index_name] [index_type] (index_col_name,...)
   | [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (index_col_name,...)
   | [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...)
   | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition]
   | CHECK (expr)

column_definition:
   col_name type [NOT NULL | NULL] [DEFAULT default_value]
   [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
   [COMMENT 'string'] [reference_definition]

type:
   TINYINT[(length)] [UNSIGNED] [ZEROFILL]
   | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
   | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
   | INT[(length)] [UNSIGNED] [ZEROFILL]
   | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
   | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
   | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
   | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
   | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
   | DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]
   | NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]
   | DATE
   | TIME
   | TIMESTAMP
   | DATETIME
   | CHAR(length) [BINARY | ASCII | UNICODE]
   | VARCHAR(length) [BINARY]
   | TINYBLOB
   | BLOB
   | MEDIUMBLOB
   | LONGBLOB
   | TINYTEXT [BINARY]
   | TEXT [BINARY]
   | MEDIUMTEXT [BINARY]
   | LONGTEXT [BINARY]
   | ENUM(value1,value2,value3,...)
   | SET(value1,value2,value3,...)
   | spatial_type

index_col_name:
   col_name [(length)] [ASC | DESC]

reference_definition:
   REFERENCES tbl_name [(index_col_name,...)]
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

reference_option:
   RESTRICT | CASCADE | SET NULL | NO ACTION

5. Ejemplo de aplicación

Se presenta el código de un script SQL para crear la BD Biblioteca, con dos tablas relacionadas: editoriales y libros.

biblioteca

Para ejecutar el script biblioteca.sql se emplea el siguiente comando:

mysql> SOURCE biblioteca.sql

 

Tarea 1.2 - Esquema de la BD

Fecha de entrega:
10 de septiembre
Modalidad:
Individual

Desarrollo de la actividad:

  • Realizar una BD relacional (relacionar tablas definiendo llaves primarias y foráneas) para administrar horarios. Se ha de administrar información de las asignaturas, profesores, ingeniería, grupos, día, hora y aula.
  • Realizar el script para crear la BD
  • Ejecutar el script (capturar pantalla)

 Detalles de la entrega:

  • Enviar al correo jpena@suryucatan.tecnm.mx
  • Adjuntar archivo en formato PDF
    • Anexar script de la creación de la BD
    • Anexar pantallazo al ejecutar el script
    • Anexar conclusiones de la práctica realizada
  • Escribir el correo con asunto: 5B + Apellido1 Nombre1  + - Tarea 1.2 (ejemplo del asunto de correo: 5B Peña Jimmy - Tarea 1.2)