TECNOLOGÍA EDUCATIVA
  • Inicio
  • 2do Semestre
  • 3er Semestre
  • 5to Semestre
  • 6to Semestre
  • Blog del programador
  • Frameworks
  • Metodologías
  • BaseDatos
  • Aplicaciones Web
  • Cultura Digital I
  • Android
  • iOS
  • Diseña Soft
  • Codifica Soft
  • Implementa Soft
  • HTML5
  • CSS
  • arquitecturas
  • JavaScript
  • PrincipiosBD
  • Normalizacion
  • Estilo
  • Inicio
  • 2do Semestre
  • 3er Semestre
  • 5to Semestre
  • 6to Semestre
  • Blog del programador
  • Frameworks
  • Metodologías
  • BaseDatos
  • Aplicaciones Web
  • Cultura Digital I
  • Android
  • iOS
  • Diseña Soft
  • Codifica Soft
  • Implementa Soft
  • HTML5
  • CSS
  • arquitecturas
  • JavaScript
  • PrincipiosBD
  • Normalizacion
  • Estilo
Search
Biombo Digital - Fundamentos de Bases de Datos

Biombo Digital de Bases de Datos

Conceptos Básicos

¿Qué es una Base de Datos?

Una base de datos es un conjunto de datos organizados y estructurados que se almacenan electrónicamente en un sistema informático.

  • Almacenamiento persistente de datos
  • Acceso eficiente a la información
  • Control de concurrencia
  • Seguridad e integridad de datos
  • Sistemas Gestores de BD (DBMS)

    Software que permite crear, mantener y manipular bases de datos.

    MySQL

    Sistema open source popular

    PostgreSQL

    DBMS avanzado open source

    Oracle

    Sistema empresarial robusto

    SQL Server

    Solución de Microsoft

    Componentes Principales

    Tablas

    Estructuras que almacenan datos en filas y columnas

    Campos (Columnas)

    Atributos o características de los datos

    Registros (Filas)

    Conjuntos de datos relacionados

    Claves

    Identificadores únicos y relaciones

    Ejemplo de Tabla

    ID_Cliente Nombre Email Teléfono Ciudad
    101 Ana García ana@email.com 555-1234 Madrid
    102 Carlos López carlos@email.com 555-5678 Barcelona
    103 María Rodríguez maria@email.com 555-9012 Valencia

    Normalización de Bases de Datos

    ¿Qué es la Normalización?

    Proceso de organizar datos en una base de datos para reducir la redundancia y mejorar la integridad de los datos.

    Primera Forma Normal (1NF)

    Eliminar grupos repetitivos y asegurar que cada columna contenga valores atómicos (indivisibles).

    -- Antes de 1NF (violación)
    CREATE TABLE Pedidos (
      ID INT PRIMARY KEY,
      ClienteID INT,
      Productos VARCHAR(255) -- Múltiples valores separados por coma
    );

    -- Después de 1NF
    CREATE TABLE Pedidos (
      ID INT PRIMARY KEY,
      ClienteID INT
    );
    CREATE TABLE PedidoProductos (
      PedidoID INT,
      ProductoID INT,
      PRIMARY KEY (PedidoID, ProductoID)
    );

    Segunda Forma Normal (2NF)

    Cumplir con 1NF y eliminar dependencias parciales (todos los atributos no clave deben depender de toda la clave primaria).

    -- Ejemplo de violación de 2NF
    CREATE TABLE Pedidos (
      PedidoID INT,
      ProductoID INT,
      NombreProducto VARCHAR(100), -- Depende solo de ProductoID
      Cantidad INT,
      PRIMARY KEY (PedidoID, ProductoID)
    );

    -- Solución: separar en dos tablas
    CREATE TABLE PedidosDetalle (
      PedidoID INT,
      ProductoID INT,
      Cantidad INT,
      PRIMARY KEY (PedidoID, ProductoID)
    );
    CREATE TABLE Productos (
      ProductoID INT PRIMARY KEY,
      NombreProducto VARCHAR(100)
    );

    Tercera Forma Normal (3NF)

    Cumplir con 2NF y eliminar dependencias transitivas (los atributos no clave no deben depender de otros atributos no clave).

    -- Ejemplo de violación de 3NF
    CREATE TABLE Empleados (
      EmpleadoID INT PRIMARY KEY,
      Nombre VARCHAR(100),
      DepartamentoID INT,
      NombreDepartamento VARCHAR(100) -- Depende de DepartamentoID, no de la clave primaria
    );

    -- Solución: separar en dos tablas
    CREATE TABLE Empleados (
      EmpleadoID INT PRIMARY KEY,
      Nombre VARCHAR(100),
      DepartamentoID INT
    );
    CREATE TABLE Departamentos (
      DepartamentoID INT PRIMARY KEY,
      NombreDepartamento VARCHAR(100)
    );

    Forma Normal de Boyce-Codd (BCNF)

    Versión más fuerte de 3NF donde cada determinante es una clave candidata.

    -- Ejemplo que viola BCNF pero cumple 3NF
    CREATE TABLE Inscripciones (
      EstudianteID INT,
      CursoID INT,
      ProfesorID INT, -- Suponiendo que cada curso tiene un único profesor
      PRIMARY KEY (EstudianteID, CursoID)
    );

    -- En BCNF, separaríamos la relación Curso-Profesor
    CREATE TABLE Inscripciones (
      EstudianteID INT,
      CursoID INT,
      PRIMARY KEY (EstudianteID, CursoID)
    );
    CREATE TABLE CursosProfesores (
      CursoID INT PRIMARY KEY,
      ProfesorID INT
    );

    Modelo Entidad-Relación

    Elementos del Modelo E-R

  • Entidades: Objetos del mundo real (rectángulos)
  • Atributos: Propiedades de las entidades (óvalos)
  • Relaciones: Conexiones entre entidades (rombos)
  • Cardinalidad: Define la relación numérica entre entidades
  • Tipos de Cardinalidad

  • Uno a Uno (1:1): Una instancia de A se relaciona con una de B
  • Uno a Muchos (1:N): Una instancia de A se relaciona con muchas de B
  • Muchos a Muchos (N:M): Muchas instancias de A se relacionan con muchas de B
  • Ejemplo de Diagrama E-R

    Cliente
    1
    N
    Pedido

    Relación "Uno a Muchos" entre Cliente y Pedido

    Estudiante
    N
    M
    Curso

    Relación "Muchos a Muchos" entre Estudiante y Curso

    Consejos para el Diseño E-R

    Buenas Prácticas

    • Identificar claramente las entidades principales
    • Definir relaciones con cardinalidades apropiadas
    • Usar nombres descriptivos para entidades y relaciones
    • Evitar atributos multivaluados

    Errores Comunes

    • Crear relaciones innecesarias
    • Ignorar la normalización
    • No definir claves primarias adecuadas
    • Olvidar las claves foráneas

    SQL y Consultas

    Lenguaje SQL

    SQL (Structured Query Language) es el lenguaje estándar para gestionar bases de datos relacionales.

    DDL (Data Definition Language)

    CREATE TABLE, ALTER TABLE, DROP TABLE

    DML (Data Manipulation Language)

    SELECT, INSERT, UPDATE, DELETE

    DCL (Data Control Language)

    GRANT, REVOKE

    TCL (Transaction Control Language)

    COMMIT, ROLLBACK

    Consultas Básicas

    -- Seleccionar todos los campos de una tabla
    SELECT * FROM Clientes;

    -- Seleccionar campos específicos
    SELECT Nombre, Email FROM Clientes;

    -- Filtrar resultados con WHERE
    SELECT * FROM Productos WHERE Precio > 100;

    -- Ordenar resultados
    SELECT * FROM Productos ORDER BY Nombre ASC;

    Consultas con Joins

    -- INNER JOIN (intersección)
    SELECT Pedidos.ID, Clientes.Nombre
    FROM Pedidos
    INNER JOIN Clientes ON Pedidos.ClienteID = Clientes.ID;

    -- LEFT JOIN (todos los de izquierda)
    SELECT Clientes.Nombre, Pedidos.ID
    FROM Clientes
    LEFT JOIN Pedidos ON Clientes.ID = Pedidos.ClienteID;

    -- RIGHT JOIN (todos los de derecha)
    SELECT Pedidos.ID, Clientes.Nombre
    FROM Pedidos
    RIGHT JOIN Clientes ON Pedidos.ClienteID = Clientes.ID;
    Página con tecnología de Weebly. Gestionada por Hosting-Mexico
    • Inicio
    • 2do Semestre
    • 3er Semestre
    • 5to Semestre
    • 6to Semestre
    • Blog del programador
    • Frameworks
    • Metodologías
    • BaseDatos
    • Aplicaciones Web
    • Cultura Digital I
    • Android
    • iOS
    • Diseña Soft
    • Codifica Soft
    • Implementa Soft
    • HTML5
    • CSS
    • arquitecturas
    • JavaScript
    • PrincipiosBD
    • Normalizacion
    • Estilo