Taller de Base de Datos I

Este es el Taller de Base de Datos I y al final del mismo comprenderás la estructura y elementos del
modelado de una Base de Datos, realizar modelos de Base de Datos, plasmar en un modelo relacional un diseño conceptual, crear  tablas a partir de un modelo relacional y normalizarlas, crear Bases de Datos y objetos dentro de la misma y escribir consultas y modificaciones a datos con el lenguaje SQL.

Clase 1: Introducción a las Bases de Datos

  • ¿Qué es una base de datos?
  • Sistema de gestión de bases de datos.
  • Naturaleza autodescriptiva de los sistemas de base de datos
  • Separación entre los programas y los datos, y abstracción de los datos
  • Actores en el escenario

Clase 2: Modelado de datos y  Modelo relacional

  • Necesidad de creación de modelos y objetivos del modelado.
  • Metodología para el Modelado de Bases de Datos, conceptos y objetos más importantes.
  • Diseño Lógico y Físico de un modelo de datos.
  • El modelo Relacional y su notación.
  • Plasmar problemas y situaciones dadas en un Diagrame Entidad – Relación.

Clase 3: Normalización y Pasaje a tablas

  • Normalización de tablas
  • Normalización
    • 1ra Forma Normal
    • 2da Forma Normal
    • 3ra Forma Normal
    • 3BCNF (Boyce Codd)
  • Creación del diseño lógico de un modelo de Bases de Datos.
  • Pasaje a tablas desde un Diagrama Entidad Relación.

Clase 4: Diseño y Creación de Bases de Datos

  • Aspectos importantes del diseño de una Base de Datos en la práctica.
  • Aspectos importantes en el diseño físico de una Base de Datos.
  • La integridad y consistencia de los datos.
  • Conceptos y objetos importantes en la Integridad Referencial.
  • Integración de Bases de Datos con los sistemas informáticos.
  • Acceso a las Bases de Datos desde una aplicación.
  • Introducción a esquemas de seguridad.
  • Conceptos Fundamentales durante el diseño y la integración de Bases de Datos en las organizaciones.

Clase 5: Catálogo y Diccionario de datos

  • Estructura del diccionario de datos
    • Su función en el desarrollo
    • La administración de Bases de Datos.
  • Consultas a meta-data.
  • Administración básica de un motor de Bases de Datos.

Clase 6: Sentencias Básicas del lenguaje SQL y Creación de Objetos -DDL

  • Introducción al ANSI SQL.
  • Las Sentencias
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
  • Creación de objetos de Bases de Datos mediante DDL.
  • Modificación de objetos ya existentes.
VN:F [1.9.12_1141]
Rating: 4.6/5 (7 votes cast)
VN:F [1.9.12_1141]
Rating: +6 (from 6 votes)

MySql: Seguridad en Base de Datos

A pesar de que las bases de datos poseen sus propios sitemas de seguridad, los scripts PHP pueden llegar a ser una entrada si no se toman las precauciones necesarias.

Un caso importante es el de los datos de conexión. Normalmente, una conexión es utilizada en todo el sitio, lo que supone centralizar los datos de conexión (nombre de usuario, contraseña, nombre del servidor, puerto, nombre de la base de datos, etc) en un mismo archivo que debería estar ubicado por fuera del DocumentRoot. De ésta manera no se podrá acceder a ese archivo a través del navegador de ninguna manera.

Otro método de acceso a la base de datos es a través del SQL injection, que consiste en incluir en las partes variables de una instrucción SQL valores que la modifiquen. Este acceso se hace a través de formularios.

Ejemplo:

Envío de datos desde un formulario a través del método POST

User: Password:
include '/config/conexion.php';

$rs = mysql_query("SELECT * FROM usuarios WHERE username = '$POST[username]' AND passowrd = '$POST[password]'");

if (mysql_num_rows($rs)) {
//succes
}
else {
//error
}

Es una consulta típica. Si completáramos el primer campo del formulario con algo como:

xxx' or 1 = 1

La sentencia final del SQL sería:

select * from usuarios where username = 'xxx' or 1 = 1 --' and password = ''

La cadena — indica el comienzo de un comentario en MySQL, por lo tanto, lo que el motor evaluará finalmente es:

select * from usuarios where username = 'xxx' or 1 = 1

La segunda condición siempre se cumple, por lo que siempre se ingresa al sistema.
Hay muchas maneras de realizar este tipo de ataques, que pueden ser neutralizados filtrando las variables de la consulta con la función mysql_real_escape_string (disponible únicamente para MySQL):

$username = mysql_real_escape_string($_POST[username]);
$password = mysql_real_escape_string($_POST[password]);
...
...
select * from usuarios where username = 'xxx\' or 1 = 1 --' and password = ''

En el próximo post voy a hablar sobre cómo filtrar datos de entrada y salida. La importancia de la validación de datos que ingresan a la aplicación desde el exterior, como el envío de formularios, carga de archivos o el acceso a servicios web.

VN:F [1.9.12_1141]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.12_1141]
Rating: +2 (from 2 votes)