Comienza Contenido

Crear Modelos de Datos

El lenguaje SQL se utiliza para la descripción del modelo de datos, y para la modelización de consultas y acciones sobre la base de datos. En esta unidad didáctica el objetivo es obtener un modelo de datos robusto y bien definido, para ello se utiliza el lenguaje DDL (Data Description Language).

Objetivos

  • Saber cómo conectarse a una base de datos Postgres
  • Descripción del modelo de Datos (DDL)

Clases

  1. Introducción a SQL:
    1. Lenguaje SQL
      1. Pequeña Historia (Investigación: 70s (SEQUEL/2), Producción: 80s (SQL))
      2. Standards: ANSI X3.135 (1986), ISO (1987), SQL1 (1989), SQL2 (1992), SQL3 (1999) pero NINGUN SGBDR los cumple totalmente (el más cercano es Postgres)
      3. Características: declarativo (importa el qué no el como), ejemplo ("select nombre from alumnos where id=120")
      4. Palabras Reservadas (tokens: palabras reservadas e Identificadores)
      5. Tipos de Instrucciones (Lenguajes):
        1. DDL (Data Definition Language): Creación de Datos
        2. DML (Data Manipulation Language): Consulta y Manipulación de Datos
        3. DCL (Data Control Language): Control del Sistema
    2. Estructura de una sentencia SQL (SQL Statements): comando, expresiones, cláusula, operador y funciones de agregado
      1. Comando: describe la acción a realizar (por ejemplo SELECT)
      2. Palabras reservadas: comandos y símbolos especiales: (*, ', ")
      3. Constantes: cadena ('cadena de texto'), numeros (15 o 14.34 o 14e+8), fechas ('2004-01-02'), boolean ( true/false, t/f) etc
      4. Expresiones: identificadores y operadores ( por ejemplo 15.4*2 ó 15.4 > 4 )
      5. Operadores: relaciona un identificador con un valor (aritméticos y lógicos)
      6. Cláusula: describe completamente el comando (FROM alumnos)
    3. Comando Básico (por ejemplo SELECT)
      1. Ayuda Interactiva: \help SELECT
      2. Envíar el comando al SGBDR: \g ó más útil ; (punto y coma)
      3. Uso de la palabra reservada AS (nombre de salida)
      4. Sintaxis (no está completa):
        		    SELECT * | expression [ AS output_name ] [, ...] [ FROM from_item [, ...] ]
    4. Ejemplos:
      	      SELECT id, num FROM paquetes; 
      	      UPDATE alumnos SET nombre = 'Manuel';
      	      CREATE TABLE prueba (id integer, nombre varchar(80));
      	      INSERT INTO inventario VALUES ('0385121679', true);
      	    
    5. Conectarse a un SGBDR: utilizando consola (psql) y Modo SQL Emacs
      1. Qué es una base de datos y qué es una tabla
      2. Sintaxis comando: (psql --help) Ejemplo: psql -h HOST -d BASEDATOS -U USUARIO; Listado de BD: psql -l
      3. Pidiendo ayuda: \? (comandos de consola), \h (ayuda sobre SQL), \g (ejecutar consultas, vale ";"), \q (salir de consola)
      4. Algunos Comandos útiles: \l, \d, \dt, \d tabla ...
      5. Trabajo con la consola de Emacs
        1. Configurar Emacs: M-x customize-options (sql-postgres-options, sql-user, sql-postgres-program)
        2. SQL Buffer (M-p, M-n, M-r, M-s)
        3. Modo SQL (C-c C-r, C-c C-b) - Ligado a un buffer interactivo
  2. Comenzando a usar SQL
    1. Uso de la Sintaxis de SQL:
      1. En mayúsculas: palabras reservadas
      2. En minúsculas: expresiones
      3. Entre Corchetes [ ]: opcional
      4. Entre Llaves { }: obligatorio
      5. Tres puntos: repetir anterior
      6. Con Operador | : Opciones Excluyentes
    2. Creación de Datos (DDL)
      1. Creando Tablas
        1. CREATE TABLE (tabla, atributos, dominios)
        2. Tipos de Datos
          1. SQL: lenguaje fuertemente tipado (control de tipos de datos)
          2. Tipos básicos (estándares): boolean, caracteres (char, varchar), numeros ( integer, real, numeric(p,s) ) y Tiempo (date, time, timestamp)
          3. Tipo de Datos Serial: identificadores únicos
          4. Ejemplos de Constantes: String, Integer y Boolean
          5. Forzar el tipo: operador ::. Ejemplo: select 15::real;
          6. En realidad hay muchos tipos de datos (Data Types) URLs, geometría, etc: Ver con \dT en consola
        3. DROP TABLE (borrar tablas)
        4. Entender la sintaxis (\help comando SQL)
      2. Restricciones (Constraints)
        1. Sobre los campos (column constraint): NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, check. Por ejemplo:
          create table prueba (ejemplo_campo integer default 9, otro_ejemplo varchar(80) not null)
        2. Con otras tablas (table_constraint): FOREIGN KEY, REFERENCES. Por ejemplo:
          create table prueba (ejemplo_clave_ajena integer references usuarios (dni) )
        3. Añadir restricciones (table_constraint) a la tabla ya creada
    3. Manipulación Básica de Datos (DML)
      1. ¿Qué es?
      2. Consultas (SELECT). Ojo a: AS output_name, FROM from_item, WHERE condition). Ejemplo: SELECT id AS Codigo, nombre AS "Nombre Completo" FROM alumnos WHERE id > 5;
      3. Insertar Datos (INSERT INTO). Ojo a la colocación de paréntesis. Ejemplo: INSERT INTO alumnos (id,nombre,apellido) VALUES (87,'Pepe','Perez');
      4. Operadores Comparación: aritméticos (>, <, =, OR, AND ...), caracteres (LIKE, expresiones regulares ~)
  3. Ejercicio: Realizar un modelo de datos
  4. Mayor profundidad sobre los comandos
    1. Sintaxis CREATE TABLE
      1. Explicación Column Constraint
      2. Explicación Table Constraint
      3. Control de datos de entrada: check (expresion)
    2. Sintaxis ALTER TABLE
    3. Sintaxis CREATE SEQUENCE
  5. Repaso y crear nuevo modelo de datos (II)

Actividades

  1. Introducción a SQL
    1. Conexión a una Base de Datos Postgres
      • Saber Manejar la consola en línea de comandos (psql)
      • Saber Manejar la conexión con Emacs (comando sql-postgres)
    2. Manejo básico de SQL
      1. Uso y Manejo de la consola para ejecutar comandos
      2. Uso de la sentencia SELECT para jugar con los tipos de datos, números y cadenas de texto
      3. Entender la estructura de los comandos
  2. Uso de SQL
    • Entender la sintaxis de la ayuda de SQL, utilizando el comando \h seguido del comando SQL
    • Conocer las sentencias de creación de un modelo de datos y su sintaxis
    • Crear y Borrar Tablas con soltura.
    • Insertar datos en las tablas
    • Ejecutar Consultas Básicas (SELECT) (Ver el contenido de la tabla, ver datos, AS, FROM, WHERE )
  3. Crear un modelo de datos SQL sobre un ejercicio (mini-banco) (utilizar E/R, esquema conceptual o cualquier técnica) (Dos Clases)
    1. Crear Tablas, diferentes tipos de datos y diferentes restricciones a nivel de tabla y a nivel de columna
    2. Cambiar el nombre a la tabla, quitar/añadir campos, etc
  4. Crear un modelo de datos SQL sobre un ejercicio (Lineas de Metro) (utilizar E/R, esquema conceptual o cualquier técnica) (Dos Clases)
  5. Entender un modelo de datos escrito por otro programador. Si tienes mucho interés puedes ver el código original

Duración del Curso

El esfuerzo estimado del curso es de 1 crédito ECTS. Unas 30 horas de dedicación.

Recursos a Utilizar