Skip to content

This project is a relational database schema designed and implemented in PostgreSQL as part of the FreeCodeCamp Relational Database Certification. It models a universe with tables for galaxies, stars, planets, and moons, demonstrating primary keys, foreign keys, various data types, constraints, and relational integrity.

Notifications You must be signed in to change notification settings

TheMasterShoot/universe-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Proyecto Base de Datos: Universe

Este proyecto consiste en la creación y gestión de una base de datos relacional llamada universe, utilizando PostgreSQL.

Descripción

La base de datos modela un universo con las siguientes entidades:

  • galaxy: Representa galaxias.
  • star: Representa estrellas, cada una vinculada a una galaxia.
  • planet: Representa planetas, cada uno vinculado a una estrella.
  • moon: Representa lunas, cada una vinculada a un planeta.

Características de la Base de Datos

  • Cada tabla tiene una clave primaria que se autoincrementa (SERIAL).
  • Las tablas incluyen columnas name de tipo VARCHAR que son únicas y no nulas.
  • Uso de varios tipos de datos:
    • INT
    • NUMERIC
    • VARCHAR
    • BOOLEAN
    • TEXT
  • Las relaciones están definidas mediante claves foráneas:
    • star referencia a galaxy
    • planet referencia a star
    • moon referencia a planet
  • Restricciones de integridad para evitar datos inválidos.
  • Se insertaron datos de ejemplo en cada tabla para simular un universo con galaxias, estrellas, planetas y lunas.

Estructura de las Tablas

galaxy

  • galaxy_id (PK, SERIAL)
  • name (VARCHAR, UNIQUE, NOT NULL)
  • type (VARCHAR)
  • distance (NUMERIC)
  • has_life (BOOLEAN, NOT NULL)
  • description (TEXT)

star

  • star_id (PK, SERIAL)
  • name (VARCHAR, UNIQUE, NOT NULL)
  • galaxy_id (FK, NOT NULL)
  • spectral_type (VARCHAR)
  • temperature (INT)
  • is_visible (BOOLEAN, NOT NULL)
  • notes (TEXT)

planet

  • planet_id (PK, SERIAL)
  • name (VARCHAR, UNIQUE, NOT NULL)
  • star_id (FK, NOT NULL)
  • has_life (BOOLEAN, NOT NULL)
  • diameter (INT, NOT NULL)
  • climate (VARCHAR)

moon

  • moon_id (PK, SERIAL)
  • name (VARCHAR, UNIQUE, NOT NULL)
  • planet_id (FK, NOT NULL)
  • diameter (INT, NOT NULL)
  • is_habitable (BOOLEAN, NOT NULL)
  • atmosphere (VARCHAR)
  • notes (TEXT)

Tests y validaciones

  • Se debe crear una base de datos llamada universe.
  • Se debe conectar a la base de datos con \c universe.
  • Se deben crear las tablas galaxy, star, planet y moon.
  • Cada tabla debe tener una clave primaria que se autoincremente automáticamente.
  • Cada tabla debe tener una columna name de tipo VARCHAR que sea única y no nula.
  • Se debe usar el tipo INT en al menos dos columnas que no sean clave primaria ni foránea.
  • Se debe usar el tipo NUMERIC al menos una vez.
  • Se debe usar el tipo TEXT al menos una vez.
  • Se debe usar el tipo BOOLEAN en al menos dos columnas.
  • Cada tabla star debe tener una clave foránea que haga referencia a una fila en galaxy.
  • Cada tabla planet debe tener una clave foránea que haga referencia a una fila en star.
  • Cada tabla moon debe tener una clave foránea que haga referencia a una fila en planet.
  • La base de datos debe tener al menos cinco tablas.
  • Cada tabla debe tener al menos tres filas.
  • Las tablas galaxy y star deben tener al menos seis filas cada una.
  • La tabla planet debe tener al menos 12 filas.
  • La tabla moon debe tener al menos 20 filas.
  • Cada tabla debe tener al menos tres columnas.
  • Las tablas galaxy, star, planet y moon deben tener al menos cinco columnas cada una.
  • Al menos dos columnas por tabla no deben aceptar valores NULL.
  • Al menos una columna por tabla debe ser UNIQUE.
  • Todas las columnas llamadas name deben ser de tipo VARCHAR.
  • Las claves primarias deben seguir la convención table_name_id, por ejemplo: moon_id.
  • Las claves foráneas deben tener el mismo nombre que la columna a la que hacen referencia.

About

This project is a relational database schema designed and implemented in PostgreSQL as part of the FreeCodeCamp Relational Database Certification. It models a universe with tables for galaxies, stars, planets, and moons, demonstrating primary keys, foreign keys, various data types, constraints, and relational integrity.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published