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

 SUBMÓDULO 1. 
Construye bases de datos para aplicaciones Web

EVALUACIÓN TERCER PARCIAL

Foto
INSTRUMENTOS TERCER PARCIAL

COMPENDIO TEÓRICO

3er Parcial

COMPENDIO PRÁCTICO

Próximamente

EVALUACIÓN SEGUNDO PARCIAL

Foto
Instrumentos 2do Parcial Parte 1
Instrumentos 2do   Parcial         
​Parte 2

COMPENDIO TEÓRICO

Parte II
PARTE I

COMPENDIO PRÁCTICO

Parte I
Parte II

Primer Parcial

Matriz de Evaluación
Instrumentos de evaluación

COMPENDIO TEÓRICO

Compendio Teórico

Evaluaciones en clase 

Evaluación
Biombo Digital - Python

Biombo Digital de Python

Descubre los conceptos fundamentales del lenguaje de programación Python

Fundamentos de Python

Variables y Tipos de Datos

Python es de tipado dinámico, no es necesario declarar el tipo de variable.

# Enteros y flotantes
edad = 25
precio = 19.99

# Cadenas de texto
nombre = "Juan"
mensaje = 'Hola Mundo'

# Booleanos
es_mayor = True
es_estudiante = False

Estructuras de Datos

Python ofrece varias estructuras de datos integradas.

# Listas (mutables)
frutas = ["manzana", "banana", "cereza"]

# Tuplas (inmutables)
coordenadas = (10, 20)

# Diccionarios (clave-valor)
persona = {"nombre": "Ana", "edad": 30}

# Conjuntos (elementos únicos)
numeros = {1, 2, 3, 4, 5}

Operadores

Python soporta diferentes tipos de operadores.

Tipo Operadores Ejemplo
Aritméticos +, -, *, /, %, **, // 5 + 3 = 8
Comparación ==, !=, >, <, >=, <= 5 > 3 → True
Lógicos and, or, not True and False → False
Asignación =, +=, -=, *=, /= x += 5 → x = x + 5

Control de Flujo

Condicionales

Permiten ejecutar código basado en condiciones.

if edad >= 18:
    print("Eres mayor de edad")
elif edad >= 13:
    print("Eres un adolescente")
else:
    print("Eres un niño")

Bucles

Permiten ejecutar código repetidamente.

# Bucle for
for i in range(5):
    print(i)

# Bucle while
contador = 0
while contador < 5:
    print(contador)
    contador += 1

Manejo de Excepciones

Permite gestionar errores de manera controlada.

try:
    resultado = 10 / 0
except ZeroDivisionError:
    print("No se puede dividir por cero")
except Exception as e:
    print("Ocurrió un error:", e)
finally:
    print("Este bloque siempre se ejecuta")

Funciones y Programación

Funciones

Bloques de código reutilizables que realizan una tarea específica.

def saludar(nombre):
    return f"Hola, {nombre}"

# Llamada a la función
mensaje = saludar("María")
print(mensaje) # Output: Hola, María

Funciones Lambda

Funciones anónimas y concisas para operaciones simples.

# Función lambda para elevar al cuadrado
cuadrado = lambda x: x ** 2
print(cuadrado(5)) # Output: 25

# Uso con map
numeros = [1, 2, 3, 4]
cuadrados = list(map(lambda x: x ** 2, numeros))
print(cuadrados) # Output: [1, 4, 9, 16]

Programación Orientada a Objetos

Python soporta programación orientada a objetos con clases y objetos.

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def saludar(self):
        return f"Hola, me llamo {self.nombre}"

# Crear objeto
persona1 = Persona("Carlos", 30)
print(persona1.saludar()) # Output: Hola, me llamo Carlos

Bibliotecas y Aplicaciones

Bibliotecas Populares

NumPy

Computación numérica y arrays multidimensionales

Pandas

Manipulación y análisis de datos

Matplotlib

Visualización de datos en 2D

Django

Framework web de alto nivel

TensorFlow

Machine learning y redes neuronales

Flask

Microframework web ligero

Características de Python

  • Sintaxis clara y legible
  • Multiplataforma
  • Interpretado y de alto nivel
  • Gran ecosistema de bibliotecas
  • Comunidad activa y grande
  • Libre y de código abierto

Ejecutar Código Python

Puedes ejecutar código Python de varias formas:

  • Intérprete interactivo (REPL)
  • Scripts (.py files)
  • Jupyter Notebooks
  • Entornos en la nube

COMPENDIO PRÁCTICO

Plantilla de Diario Reflexivo
Prácticas parte I
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;
    Normalización
    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