Está en la página 1de 44

EQUIPO DE TRABAJO 6:

PEDRO JAVIER LORA PÉREZ ID 1106036

ALIANY ESTHER GONZÁLEZ MARTÍNEZ ID 1107613

JHOAN MANUEL SANTANA GONZÁLEZ ID 1113588

LUIS ESTEBAN CAPELLÁN CASTILLO ID 1114379

MATERIA:

INS380 – BASES DE DATOS II

SECCIÓN:

02

TEMA:

ACTIVIDAD 1

TRIMESTRE:

FEBRERO – ABRIL 2024

MAESTRO:

ISAÍAS MERCADO LÓPEZ


INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

1. Mostrar evidencia de creación de base de datos, y de tablas en su motor


de base de datos.
2. Crearle un índice por la línea de comando de cada tipo: Page | 1

• Clustered and Nonclustered Index Constraints:


o Unique index
o Composite Index
o Inverted index
o Filtered Index y full-text index
3. Crear varios tipos de constraint vistos en clase y explique cada uno en
su ejemplo:
• Primary Key
• Unique Constraint
• Foreign Key Constraint
• Check Constraint: con varias evaluaciones.
• Default Constraint con varios criterios
• Not NULL
4. Una vez construya los índices, inserte o actualice registros de manera
que se vean varios registros insertados o actualizado correctamente.
Muestre otros ejemplos de fallo de inserción o actualízalo y explique
las razones.
5. Haga uso de del comando DBCC memorystatus o comando para ver el
espacio de disco y de memoria disponible.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

✓ SQL Server – Aliany González (1107613) y Luis Capellán (1114379):


Luis Capellan:
Page | 2
1. Mostrar evidencia de creación de base de datos, y de tablas en su
motor de base de datos.

Aquí estoy creando la base de datos y sus tablas, la base de datos la cree usando la
interfaz gráfica y las tablas mediante Query.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

2. Clustered and Nonclustered Index Constraints

Page | 3
• CLUSTERED:

Como se puede ver la imagen al crear una llave primaria esta es tomada como un
clustered index, ya que la llave primaria cumple con esta función.
• NON-CLUSTERED:

En esta ocasión estoy creado un non-clustered index usando el apellido den la


tabla de Employees.

3. UNIQUE Index

Creando un unique index en la tabla de customers.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

4. Composite Index

Page | 4

Creando un Composite index en la tabla de Employees utilizando el Firstname y


el LastName.

5. Inverted Index

Aquí estoy creando una estructura de datos llamada inverted index para mejorar
el rendimiento de búsquedas de textos, estoy empleando varias funciones para
llevar esto acabo, una de ellas es el “string_split” para separar los palabras usando
el criterio del espacio que estaría representado como (‘ ‘), también hago uso del
Trim para eliminar el espacio al principio y al final de cada palabra para luego
poder ordenarlas y agruparlas mediante el “GROUP BY TRIM()”, también hago
uso del “STRING_AGG” para poder concatenar los id donde se encuentran en
uso dichas palabras, este sería el resultado:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 5

6. Filtered Index

7. Primary Key

Aquí estoy creando una tabla con un PRIMARY KEY


8. Unique Constraint

Agregando un unique constraint al campo Email en la tabla de Customers

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

9. Foreign Key Constraint


Page | 6

Aquí estoy creando una tabla con un Foreign Key Constraint en la tabla de
Employees que hace referencia a la tabla de Departments

10. Check Constraint: con varias evaluaciones

En esta ocasión estoy creado un check constraint que evalúa que el campo GPA
sea mayor a 0.0 y menor a 4.0

11. Default Constraint

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

12. Not
NULL
Page | 7

13. Una vez construya los índices, inserte o actualice registros de


manera que se vean varios registros insertados o actualizado
correctamente. Muestre otros ejemplos de fallo de inserción o
actualización y explique las razones.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 8

Los dos anteriores casos fallaron ya que tanto el campo CustomerID como el
campo FirstName tienen constrains que no permite campos nulos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 9

Ya que el campo CustomerID tiene el constraint de Primary key el cual no


permite campos nulos y el campo FirstName tiene el constraint de NOT NULL,
el que como su nombre indica no permite campos nulos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

14. Haga uso de del comando DBCC memorystatus o comando para


ver el espacio de disco y de memoria disponible.

Page | 10

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Aliany González:
1. Creación de la Base de Datos y tablas que la constituyen
Page | 11

2. Creación de Indexes (Clustered y Non-Clustered):

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

3. Creación de varios tipos de Constraints:

Page | 12

• Primary Key

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Como podemos ver en la imagen anterior, los Constraints de tipo Primary Key
fueron creados desde el modelado y creación de las tablas, estos hacen que no se
Page | 13
pueda insertar el mismo ID más de una vez.

• Unique Constraint

Este Unique Constraint se encarga de que los registros de ese campo sean únicos,
dígase que no se pueda repetir un registro de ese campo.

Veamos un ejemplo:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 14

Estos Clientes fueron ingresados de manera previa para este ejemplo, digamos que
voy a crear un nuevo cliente con la misma cedula de nuestro cliente de ID = 2
(Héctor Sánchez: 40213762839) a ver que sucede:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Como podemos apreciar, no me deja registrar al cliente Carlos Luciano debido a


que el campo Cedula es tiene un Constraint de tipo UNIQUE, por lo tanto, no
Page | 15
permite que haya más de un cliente con la misma numeración de su Cedula.

• Foreign Key Constraint

Como podemos ver en la imagen anterior, los Constraints de tipo Foreign Key
fueron creados desde el modelado y creación de las tablas, estos permiten las
relaciones entre tabla, o sea, que exista una comunicación entre estas.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

• Check Constraint: con varias evaluaciones.

Page | 16

Algunos de estos Constraints fueron añadidos en base a funciones creadas para su


funcionamiento:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 17

CHK_ValidarCantidadClientes: Se encarga de validar que la cantidad de clientes


que se hospede en una habitación no sobrepase la cantidad máxima de personas que
se permiten en un tipo de habitación.

CHK_VerificarDisponibilidadHabitacion: Se encarga de verificar que no se


puedan hospedar clientes en una habitación que no tenga disponibilidad.

Veamos un ejemplo de CHK_VerificarDisponibilidadHabitacion:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 18

Tenemos nuestros clientes de ID = 1 y 4 hospedados en nuestra habitación 5.

Aquí podemos ver en nuestra Tbl_Habitacion que estos clientes efectivamente se


encuentran en la habitación 5

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 19

No nos permite debido a que la habitación 5 no tiene disponibilidad porque esta ya


esta siendo utilizada por otros clientes.

Ahora veamos si nuestro check del campo edad funciona (Es un hotel para adultos
por lo tanto los clientes deben ser mayores de 18 años):

No me permite ingresar a nuestro cliente Carlos porque no es mayor de 18 años.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

• Default Constraint con varios criterios

Page | 20

Aquí tenemos 3 Constraints de tipo default, los cuales se encargaran de que el


campo no se quede Nulo, si no con la sentencia que declaremos en el default.

Veamos un ejemplo:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

• Not NULL

Page | 21

Podemos observar como muchos campos tienen el Constraint de Not Null, lo cual
significa que estos campos en especifico no aceptan valores NULL o nulos.

Veamos un ejemplo:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 22

No me permite insertar al cliente debido a que el campo Nombre_Cliente no


permite valores NULL.

4. Uso de DBCC memory:

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

✓ PostgreSQL – Pedro Lora (1106036) y Jhoan Santana (1113588):


Pedro Lora:
Page | 23
1. En esta captura de pantalla se creó la base de datos y sus tablas.

2.1 El Clustered index es la primary key de cada tabla, como solo puede
haber un clustered index este será el que utilice a la hora de hacer consultas.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

2.1 Non Clustered index.

Page | 24

2.2 Unique Index.

Este índice es de tipo único, lo que significa que no permite valores duplicados en
la columna nombre_plato. Cada valor en esta columna debe ser único en la tabla
platos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

2.3 Composite Index.

Page | 25

Este índice es compuesto porque involucra más de una columna. En este caso, se
compone de las columnas pedido_id y plato_id.
2.4 Inverted index.

Este índice se utiliza para mejorar el rendimiento de las consultas que realizan
búsquedas de texto completo en la columna descripción de la tabla platos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

2.5 Filtered Index.

Page | 26

Este tipo de índice está diseñado para indexar solo un subconjunto de filas que
cumplen con una condición específica. En este caso, se está filtrando por el valor
'En proceso' en la columna estado_pedido.
2.5 full-text index

Este índice de texto completo se utiliza para mejorar el rendimiento de las


consultas que realizan búsquedas de texto completo en la columna descripcion de
la tabla platos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

3.1 Primary Key.

Page | 27

Garantiza que el campo identificador (cliente_id) sea único y no nulo.


3.2 Unique Constraint.

Asegura que la columna teléfono en la tabla clientes tenga valores únicos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

3.3. Foreign Key Constraint.

Page | 28

Establece una relación entre la columna cliente_id en la tabla pedidos y la


columna cliente_id en la tabla clientes.
3.4 Check Constraint: con varias evaluacones.

ck_precio_positivo: Verifica que el precio en la tabla platos sea siempre mayor


que cero.
ck_cantidad_positivo: Verifica que la cantidad en de pedidos en la tabla
detalles_pedido sea mayor que cero.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

ck_nombre_cliente: Verifica que el nombre del cliente tenga tres o más


caracteres.
Page | 29

3.5 Default Constraint con varios criterios.

Establece un valor por defecto para la columna estado_pedido en la tabla


pedidos.

Establece un valor predeterminado, fecha actual y hora.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 30

3.6 Not NULL.

Asegura que la columna nombre_plato en la tabla platos no pueda tener


valores nulos.
4. Registros y violación de constraints.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 31

En este ejemplo intentamos hacer inserción de un nuevo registro utilizando


un número telefónico ya existente, pero no deja que hagamos la inserción
debido al Unique Constraint.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 32

En este ejemplo intentamos crear un nuevo registro con un precio negativo,


sin embargo, el Check Constraint que creamos previamente no permite la
inserción de dicho registro.

En este ejemplo intentamos insertar en la tabla pedidos, pero como existe


un constraint not null para cliente_id, no es posible.

En este ejemplo intentamos insertar un nuevo registro en la tabla


detalles_pedido, pero como existe un constraint de Foreign Key y el

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
dato ingresado no existe en la tabla pedidos, no es posible ingresar el
registro.
5. espacio de disco y de memoria disponible.
Page | 33

Espacio por tablas.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 34

Espacio total utilizado por la base de datos.

Cantidad de memoria asignada a la caché.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
Jhoan Santana:
• Creación de la base de datos con sus respectivas tablas.

Page | 35

Creación de la base de datos con sus respectivas tablas:

En esta parte, se está creando una base de datos llamada "hospital" y se definen cinco tablas
dentro de ella: "paciente", "doctor", "cita", "tratamiento" y "palabras_clave". Cada tabla tiene
columnas específicas para almacenar información relacionada con pacientes, doctores, citas,
tratamientos y palabras clave.
La tabla "paciente" almacena información sobre pacientes, como su nombre, edad y género.
La tabla "doctor" almacena información sobre doctores, como su nombre y especialidad.
La tabla "cita" registra las citas entre pacientes y doctores, con información sobre la fecha.
La tabla "tratamiento" guarda detalles sobre tratamientos asignados a pacientes, con una
descripción del tratamiento.
La tabla "palabras_clave" es utilizada para almacenar palabras clave asociadas a ciertos
contextos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
• Creación de índices

Page | 36

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
Creación de índices:

En esta sección, se están creando varios tipos de índices para mejorar el rendimiento y la
eficiencia de las consultas en la base de datos. Page | 37
Se crean índices clustered y no clustered en las tablas "cita" y "tratamiento"
respectivamente, para acelerar la búsqueda de registros según la fecha y el paciente.
Se establece un índice único en la tabla "doctor" para garantizar que no haya nombres
de doctores duplicados.
Se crea un índice compuesto en la tabla "cita" para mejorar la búsqueda de citas según el
paciente y el doctor.
Se aplica un índice invertido en la tabla "tratamiento" para mejorar la búsqueda de
palabras clave en las descripciones de los tratamientos.
Se utiliza un índice filtrado (o índice de texto completo) en la tabla "doctor" para buscar
nombres que contengan la abreviatura "Dr.".

• Constraints

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
Constraints:

En esta sección, se aplican restricciones a las tablas para garantizar la integridad de los
datos y cumplir con ciertas reglas empresariales. Page | 38
Se establecen claves primarias y únicas para asegurar identificadores únicos en las tablas.
Se aplican restricciones de clave externa (foreign key) para vincular la tabla "cita" con la
tabla "paciente".
Se agregan restricciones de verificación (check constraints) para garantizar que la edad
de los pacientes sea no negativa y que el género sea válido.
Se establecen restricciones de no nulo y predeterminado en ciertas columnas para
garantizar la presencia de valores y proporcionar valores predeterminados si no se
proporcionan.

• Inserción de registro

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 39

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 40

Inserción de registros:

En esta parte, se están insertando datos de ejemplo en las tablas recién creadas para simular la
información de pacientes, doctores, citas, tratamientos y palabras clave.
Se ingresan registros de pacientes, doctores, citas, tratamientos y palabras clave utilizando
comandos INSERT INTO.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
• Ejemplos de fallo

Page | 41

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ
Ejemplos de fallo:

Se proporcionan ejemplos de inserciones que no cumplen con las restricciones establecidas, lo


que resulta en errores. Page | 42
Se intenta insertar un paciente con edad negativa, violando la restricción de verificación de edad
no negativa.
Se intenta insertar un doctor con un nombre que ya existe, violando la restricción única en el
nombre del doctor.

• Espacio de disco y de memoria disponible.

Espacio de Disco Disponible:


La primera consulta utiliza pg_database_size(current_database()) para obtener el tamaño
total de la base de datos actual en bytes. Luego, pg_size_pretty se utiliza para presentar este
tamaño en un formato legible. El resultado proporciona la cantidad total de espacio en disco
utilizado por la base de datos actual.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6
INS380-02 – BASE DE DATOS II
PROF. ISAÍAS MERCADO LÓPEZ

Page | 43

Espacio de Memoria Disponible:


La segunda consulta muestra el espacio de disco utilizado por cada tabla en el esquema público
(public). Utiliza pg_total_relation_size('public.' || table_name) para obtener el tamaño
total de cada tabla y pg_size_pretty para presentar el resultado de manera legible. Esto
proporciona información detallada sobre el espacio ocupado por cada tabla en la base de datos.

ACTIVIDAD #1
EQUIPO DE TRABAJO 6

También podría gustarte