Este proyecto consiste en la creación y gestión de una base de datos relacional llamada universe, utilizando PostgreSQL.
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.
- Cada tabla tiene una clave primaria que se autoincrementa (
SERIAL). - Las tablas incluyen columnas
namede tipoVARCHARque son únicas y no nulas. - Uso de varios tipos de datos:
INTNUMERICVARCHARBOOLEANTEXT
- Las relaciones están definidas mediante claves foráneas:
starreferencia agalaxyplanetreferencia astarmoonreferencia aplanet
- 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.
- galaxy_id (PK, SERIAL)
- name (VARCHAR, UNIQUE, NOT NULL)
- type (VARCHAR)
- distance (NUMERIC)
- has_life (BOOLEAN, NOT NULL)
- description (TEXT)
- 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_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_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)
- 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,planetymoon. - Cada tabla debe tener una clave primaria que se autoincremente automáticamente.
- Cada tabla debe tener una columna
namede tipoVARCHARque sea única y no nula. - Se debe usar el tipo
INTen al menos dos columnas que no sean clave primaria ni foránea. - Se debe usar el tipo
NUMERICal menos una vez. - Se debe usar el tipo
TEXTal menos una vez. - Se debe usar el tipo
BOOLEANen al menos dos columnas. - Cada tabla
stardebe tener una clave foránea que haga referencia a una fila engalaxy. - Cada tabla
planetdebe tener una clave foránea que haga referencia a una fila enstar. - Cada tabla
moondebe tener una clave foránea que haga referencia a una fila enplanet. - La base de datos debe tener al menos cinco tablas.
- Cada tabla debe tener al menos tres filas.
- Las tablas
galaxyystardeben tener al menos seis filas cada una. - La tabla
planetdebe tener al menos 12 filas. - La tabla
moondebe tener al menos 20 filas. - Cada tabla debe tener al menos tres columnas.
- Las tablas
galaxy,star,planetymoondeben 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
namedeben ser de tipoVARCHAR. - 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.