Está en la página 1de 18

INSTITUTO TEGNOLOGICO DE ZACATEPEC

TEGNOLOGICO NACIONAL DE MÉXICO

TALLER DE BASE DE DATOS

PRACTICA 1.3

GRUPO: XA

18090233

FLORES HERRERA ADRIAN


PRÁCTICA No. 3 Diseño y creación del esquema de una base de datos.
OBJETIVO.
Conocer y aplicar las distintas restricciones de integridad referencial para lograr
mantener los datos correctos y completos de una base de datos relacional en todo
momento.

1. Usar el siguiente modelo de base de datos para realizar esta práctica:

(PK)

El esquema de una base de datos se define mediante una serie de instrucciones


SQL para crear la base de datos y sus respectivas tablas o relaciones.
Conectarse a postgres: psql -h localhost -U postgres
Server [localhost]: psql -h localhost -U postgres
Database [postgres]: <enter>
Port [5432]: <enter>
Username [postgres]: <enter>
Contraseña para usuario postgres: root

Para listar las bases desde postgres: \l


Para listar los usuarios desde postgres: \du
Para modificar alguna tabla desde postgres: ALTER TABLE
Para entrar a una base de datos: \c nombre_Base
Para mostrar las tablas de la bd seleccionada: \dt
Para mostrar todas las tablas dentro de un esquema: \d+ nombre_Esquema.*
Para listar todas las tablas dentro de una base : \dt *.*
Para mostrar una tabla en específicos de un esquema: \d+ nombre_Esquema
. nombre_Tabla Para mostrar la descripcion de la tabla, columnas, tipo,
modificadores, etc: \d+ nombre_Tabla

Ingresando al gestor de postgress

1. Crear la base de datos:


postgres=# create database proyecprueba; CREATE
DATABASE
postgres=# \c proyecprueba proyecprueba=# ahora te encuentras en la BD activa

y ya puedes crear tus tablas desde ahora todo lo que hagas se almacena en la BD

activa
Creando la base de datos proyecto prueba

2. Usar el lenguaje de definición de datos para crear las distintas tablas del
modelo, considerando solo los tributos sin ninguna restricción, ejemplo:

NOTA: para cada restricción definida sobre una tabla, se recomienda darle un nombre, por ejemplo ck_nombreatributo,
esto es con la finalidad de poder identificar, modificar o eliminar dicha restricción. También se recomienda no repetir
los nombres de restricciones dentro de una base de datos, pues ocasionaría confusión para el manejador de base de
datos, causando un error

TABLA: trabajador TABLA: asignación TABLA: obra


CREATE TABLE trabajador ( CREATE TABLE asignacion ( CREATE TABLE obra (
id_trab int not null, id_trab int not null, id_obra character varying (4) not null,
nombre character varying (40), id_obra character varying (4) not null, direccion character varying (50),
sueldo float, dias int); tipo character varying (20));
fecha_ingreso date,
oficio character varying (20));
id_obra={E123, E234, E111,…}

Los campos clave están en color


rojo

Creando la tabla trabajador

Creando tabla asignación y obra


3. Anexar restricciones primary key a las tablas

Definir el campo clave a la tabla trabajador, obra y asignacion

ALTER TABLE trabajador ADD CONSTRAINT pk_id_trab primary key


(id_trab);

Anexa la llave primaria de las otras 2 tablas obra y asignacion

Definiendo id_trab de la tabla trabajador como llave primaria, al igual que id_obra de
la tabla obra como llave primaria

Declarando llaves foraneas id_trab y id_obra en la tabla asignación


4. Anexar restricciones o constraint check para campos numéricos a la tabla
Trabajador.

La restricción check, exige que se definan un conjunto de valores válidos para los
atributos, hay que considerar que estos valores pueden ser de distintos tipos,
entero, flotante, carácter, etc.

Tabla: Trabajador
Atributo Tipo de Clave Dominio
dato
Id_trab Int P 10 a 5000
K
Nombre character A-Z a-z espacio en blanco punto ´
varying (40)

Sueldo Float 2000 a 40000

Oficio character Not Null ‘Carpintero’,’Fontanero’,’Electrico’,’Herrero’


varying (20)

Tabla: obra
Atributo Tipo de dato Clave Dominio

Id_Obra Varchar(4) PK Not Null Primer carácter letra E, los siguientes 3


caracteres deben ser números (E345)
Direccion Varchar(50) A-Z a-z 0-9 punto(.) espacio en blanco

Tipo Varchar(20) Not Null ‘Oficina’, ‘Comercio’,’Gobierno’

Tabla: asignacion
Atributo Tipo de Clave Dominio
dato
Id_trab Int PK, FK Not Null 10 a 5000

Id_Obra Varchar(4) PK, FK Not Null Primer carácter letra E, los siguientes 3
caracteres deben ser números (E345)
Dias Int Rango de valores entre 1 y 31
Restricciones de la tabla trabajador:

El campo id_trab solo debe aceptar valores positivos entre 10 y 5000


Proyectito=# ALTER TABLE trabajador ADD CONSTRAINT CK_id_trab check (id_trab
>=10 and id_trab <= 5000);
Proyectito=# ALTER TABLE trabajador ADD CONSTRAINT CK_id_trab check
(id_trab between 10 and 5000);

El campo sueldo solo debe aceptar valores positivos entre 2000 y 40000
Proyectito =# ALTER TABLE trabajador ADD CONSTRAINT CK_sueldo check
(sueldo >=2000 and sueldo <=40000);
Proyectito =# ALTER TABLE trabajador ADD CONSTRAINT CK_sueldo check
(sueldo between 2000 and 40000);
5. Anexar restricciones check para campos alfanuméricos a la tabla Trabajador.

El campo oficio solo debe aceptar valores: carpintero, fontanero, electricista,


herrero
Proyectito=# ALTER TABLE trabajador ADD constraint ck_oficio check
(oficio='CARPINTERO' or oficio='FONTANERO' or oficio='HERRERO' or
oficio='ELECTRICO');

El campo nombre solo debe aceptar valores de A..Z o a..z o espacio blanco o .
Proyectito=# ALTER TABLE trabajador ADD constraint ck_nombre check
(nombre ~*'^[A-Z,a-z,., ,´]+$');

El dominio específica que para el campo nombre, sólo se debe permitir los caracteres de (A-Z)
mayúsculas y minúsculas (a-z), el carácter punto (.) y el carácter espacio en blanco ( )

Los metacaracteres son caracteres que tienen un significado especial dentro del patrón de la
expresión regular. Los más usados son: ~ ^ $ \ . * + ? ( ) [ ] |
6. Mostrar el esquema de la tabla Trabajador
7. Insertar registros con valores inválidos en los campos anteriores para
verificar la integridad de los datos en la tabla trabajador

8. Insertar registros con valores válidos en los campos anteriores para verificar
la integridad de los datos en la tabla trabajador
9. Crear las tablas Obra y Asignacion, anexar sus campos clave

Restricciones de la tabla obra:

Restricciones asignación:
10. Mostrar el esquema de cada una de las tablas

Mostrando el esquema de trabajador:

11. Para completar esta práctica se definen a continuación los dominios de cada
atributo en las distintas tablas de la base de datos que se deberán definir
mediante el comando ALTER TABLE:
Tabla: obra
Atributo Tipo de dato Clave Dominio

Id_Obra Varchar(4) PK Not Null Primer carácter letra E, los siguientes 3


caracteres deben ser números (E345)
Direccion Varchar(50) A-Z a-z 0-9 punto(.) espacio en blanco

Tipo Varchar(20) Not Null ‘Oficina’, ‘Comercio’,’Gobierno’

Tabla: asignacion
Atributo Tipo de Clave Dominio
dato
Id_trab Int PK, FK Not Null 10 a 5000

Id_Obra Varchar(4) PK, FK Not Null Primer carácter letra E, los siguientes 3
caracteres deben ser números (E345)
Dias Int Rango de valores entre 1 y 31

Datos inválidos de la tabla obra:

Datos validos de la tabla obra:

Datos invalidos para la tabla asignación:


Datos validos de la tabla asignación:

12. Mediante ALTER TABLE, agregar el atributo RFC a la tabla Trabajador con las
siguientes restricciones:

Tabla: Trabajador
Atributo Tipo de Clave Dominio
dato
RFC Varchar(10) Unique Los 4 primeros caracteres A-Z, los 6
restantes 0-9

Agregando el atributo RFC a la tabla trabajador:


Restriccion a RFC:
13. Anexar restricciones foreign key para relacionar las 3 tablas Trabajador, Obra,
Trabajador y Asignacion

HASTA AHORA HA COMPLETADO EL ESQUEMA DE LA BD proyecprueba


14. Una vez que se haya terminado de definir el esquema de la base de datos,
probar insertando registros en cada tabla verificando que se cumplan las
restricciones establecidas. Anexar evidencias (imágenes o pantallas) de
registros válidos y registros inválidos
15. Realizar consultas simples e incluye evidencia de cada consulta
a. Muestra los nombres de trabajadores que sean CARPINTEROS o
FONTANEROS

b. Muestra los nombres de trabajadores que estén asignados a obras


c. Muestra los nombres de trabajadores que estén asignados a obras tipo
COMERCIO

d. Muestra los nombres de empleados NO asignados a obras tipo


OFICINA
Elaborar un reporte con los siguientes datos, pero antes se le pide revisar la
rúbrica:
• Portada
• Práctica individual
• Sea creativo, recuerde que se evalúan todos los puntos de la práctica
• Las imágenes deben ser claras y muy visibles
• Incluir las imágenes que demuestren la respuesta correcta en cada
punto
• Incluir imágenes que demuestren que se cumple la integridad con
valores NO permitidos, con su pertinente explicación, lo que Usted
considere necesario explicar e incluir en el reporte
• Fecha de entrega 5 de marzo 2021 máximo 11:00pm
• Documento a subir en formato pdf
• Nombre del archivo Práctica 1.3 APELLIDOS NOMBRE(S).pdf

También podría gustarte