Taller2 00034022

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

TALLER 2 - Administracion de

Bases de Datos
Bitácora de Trabajo
Diego Fabrizio Calderón Quevedo - 00034022

Tarea 2
Creación de Tablespaces y Usuarios
La tarea se inicia con la creación de tablespaces para organizar el almacenamiento y la
definición de usuarios asociados a cada categoría de datos.

Pasos Realizados:
Conexión al Sistema:

Acceso al sistema con privilegios de SYSDBA .

CONNECT SYS as SYSDBA;

Creación de Tablespaces:

Se crean tablespaces para organizar el almacenamiento de datos.

CREATE TABLESPACE t_dbadmin DATAFILE 'C:\demo\t_dbadmin.dbf' SIZE 10M;


CREATE TABLESPACE t_empleados DATAFILE 'C:\demo\t_empleados.dbf' SIZE 10M;
CREATE TABLESPACE t_estudiantes DATAFILE 'C:\demo\t_estudiantes.dbf' SIZE 10M;

Prefijo para Usuarios Comunes:

Los usuarios comunes en Oracle Database deben tener un prefijo específico, que
es definido por el parámetro common_user_prefix . Verifica el valor de este parámetro
para tu base de datos.

TALLER 2 - Administracion de Bases de Datos 1


SHOW PARAMETER common_user_prefix;

Creación de Usuario y Asignación de Cuotas:

Se crea el usuario C##udbadmin y se le asignan cuotas en los tablespaces


correspondientes. El usuario es creado con una contrasena que cumpla con los
criterios de ora12c_strong_verify_function.

CREATE USER C##udbadmin IDENTIFIED BY "Uca2023!UCA"


DEFAULT TABLESPACE t_dbadmin
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON t_dbadmin;

ALTER USER C##udbadmin QUOTA UNLIMITED ON t_empleados;


ALTER USER C##udbadmin QUOTA UNLIMITED ON t_estudiantes;

Asignación de Privilegios:

Se otorgan privilegios de conexión y creación de tablas al usuario administrador.

GRANT CONNECT, CREATE TABLE TO c##udbadmin;

Creación de Tablas
Definir y crear las tablas iniciales necesarias para la base de datos mediante el recurso
“database.sql”

Pasos Realizados:
Conexión con el Usuario UDBADMIN:

Conexión con el usuario C##udbadmin .

CONNECT C##udbadmin/"Uca2023!UCA";

Creación de Tablas con el recurso “database.sql”:

Se crean las tablas necesarias para la base de datos.

TALLER 2 - Administracion de Bases de Datos 2


CREATE TABLE EMPLEADO (
carnet CHAR(8) PRIMARY KEY,
nombre VARCHAR2(256),
correo VARCHAR2(256),
id_tipo_empleado INT -- 0: administrativo, 1: coordinador, 2: docente
);

CREATE TABLE MATERIA (


id INT PRIMARY KEY,
nombre VARCHAR2(64),
creditos INT,
correlativo INT
);

CREATE TABLE ESTUDIANTE (


carnet CHAR(8) PRIMARY KEY,
nombre VARCHAR2(256),
correo VARCHAR2(256)
);

CREATE TABLE EVALUACION (


id INT PRIMARY KEY,
titulo VARCHAR2(64),
porcentaje FLOAT
);

CREATE TABLE SECCION (


id INT PRIMARY KEY,
carnet_empleado CHAR(8),
id_materia INT,
correlativo INT,
ciclo INT,
annio INT
);

ALTER TABLE SECCION ADD FOREIGN KEY (carnet_empleado) REFERENCES EMPLEADO (carnet);
ALTER TABLE SECCION ADD FOREIGN KEY (id_materia) REFERENCES MATERIA (id);

CREATE TABLE LISTA_ESTUDIANTES (


carnet_estudiante CHAR(8),
id_seccion INT
);

ALTER TABLE LISTA_ESTUDIANTES ADD PRIMARY KEY (carnet_estudiante, id_seccion);


ALTER TABLE LISTA_ESTUDIANTES ADD FOREIGN KEY (carnet_estudiante) REFERENCES ESTUDIANTE (c
arnet);
ALTER TABLE LISTA_ESTUDIANTES ADD FOREIGN KEY (id_seccion) REFERENCES SECCION (id);

CREATE TABLE NOTA (


id INT PRIMARY KEY,
carnet_estudiante CHAR(8),
id_evaluacion INT,
id_seccion INT,
nota_obtenida FLOAT
);

TALLER 2 - Administracion de Bases de Datos 3


ALTER TABLE NOTA ADD FOREIGN KEY (carnet_estudiante) REFERENCES ESTUDIANTE (carnet);
ALTER TABLE NOTA ADD FOREIGN KEY (id_evaluacion) REFERENCES EVALUACION (id);
ALTER TABLE NOTA ADD FOREIGN KEY (id_seccion) REFERENCES SECCION (id);

Tarea 3
Creación de Roles y Privilegios
En esta fase, se crean roles para cada categoría de usuario y se otorgan los privilegios
adecuados a cada rol.

Pasos Realizados:
Creación de Roles:

Se crean roles para Administrativo, Coordinador, Docente y Estudiante.

CREATE ROLE C##ADMINISTRATIVO;


CREATE ROLE C##COORDINADOR;
CREATE ROLE C##DOCENTE;
CREATE ROLE C##ESTUDIANTE;

Otorgamiento de Privilegios:

Se otorgan privilegios específicos a cada rol.

-- Rol Administrativo
GRANT CREATE SESSION TO C##ADMINISTRATIVO;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.EMPLEADO TO C##ADMINISTRATIVO;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.ESTUDIANTE TO C##ADMINISTRATIVO;

-- Rol Coordinador
GRANT CREATE SESSION TO C##COORDINADOR;
GRANT SELECT, UPDATE ON C##udbadmin.ESTUDIANTE TO C##COORDINADOR;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.MATERIA TO C##COORDINADOR;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.SECCION TO C##COORDINADOR;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.LISTA_ESTUDIANTES TO C##COORDINADOR;
GRANT SELECT ON C##udbadmin.EVALUACION TO C##COORDINADOR;
GRANT SELECT ON C##udbadmin.NOTA TO C##COORDINADOR;
GRANT SELECT ON C##udbadmin.EMPLEADO TO C##COORDINADOR; -- Solo puede ver la lista de empl
eados que trabajan como docentes

-- Rol Docente
GRANT CREATE SESSION TO C##DOCENTE;
GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.EVALUACION TO C##DOCENTE;

TALLER 2 - Administracion de Bases de Datos 4


GRANT INSERT, SELECT, DELETE, UPDATE ON C##udbadmin.NOTA TO C##DOCENTE;
GRANT SELECT ON C##udbadmin.ESTUDIANTE TO C##DOCENTE;
GRANT SELECT ON C##udbadmin.SECCION TO C##DOCENTE;
GRANT SELECT ON C##udbadmin.LISTA_ESTUDIANTES TO C##DOCENTE;

-- Rol Estudiante
GRANT CREATE SESSION TO C##ESTUDIANTE;
GRANT SELECT ON C##udbadmin.EVALUACION TO C##ESTUDIANTE;
GRANT SELECT ON C##udbadmin.NOTA TO C##ESTUDIANTE;

Tarea 4
Creacion de tabla de datos temporales
La creacion de esta tabla es para guardar todos los valores provenientes del
recurso de “Banco de datos.txt”

CREATE TABLE datos_temporales (


nombre VARCHAR2(256),
tipo_usuario VARCHAR2(20),
carnet VARCHAR2(8),
correo VARCHAR2(256)
);

Inserción de Datos:

Para este apartado primero debemos hacer un archivo .ctl en el cual colocaremos lo
siguiente:

LOAD DATA
INFILE 'C:\Users\fabri\Downloads\Banco de datos.txt'
INTO TABLE datos_temporales
FIELDS TERMINATED BY ';'
(nombre, tipo_usuario, carnet, correo)

Con ese bloque, le indicamos al sistema de que archivo .txt importar los datos hacia la
tabla de “datos_temporales” que creamos previamente. Se le indica mediante que
signo estan separados los campos, en este caso se separan mediante punto y coma.

Ejecutar .ctl

En la terminal o cmd, se coloca el siguiente comando para ejecutar el script que


hicimos en un archivo .ctl para automatizar la importacion de los datos a la tabla de
“datos_temporales”.

TALLER 2 - Administracion de Bases de Datos 5


sqlldr userid="C##udbadmin@orcl" control="C:\Users\fabri\OneDrive\Escritorio\datainsert.ctl"

Separación y Carga de Datos en Tablas Definitivas


Pasar los datos de la tabla “datos_temporales” hacia las tablas EMPLEADO y
ESTUDIANTE respectivamente. Mediante bloques de codigo.

Se insertan los datos, de manera automatizada a la tabla EMPLEADO y luego a la


tabla ESTUDIANTE.

-- Insertar datos en la tabla EMPLEADO


-- Dependiendo de su rol
INSERT INTO C##udbadmin.EMPLEADO (carnet, nombre, correo, id_tipo_empleado)
SELECT
carnet,
nombre,
correo,
CASE tipo_usuario
WHEN 'Administrativo' THEN 0
WHEN 'Coordinador' THEN 1
WHEN 'Docente' THEN 2
END AS id_tipo_empleado
FROM C##udbadmin.datos_temporales
WHERE tipo_usuario IN ('Administrativo', 'Coordinador', 'Docente');

Inserción de Datos en Tabla ESTUDIANTE:

Se insertan datos en la tabla ESTUDIANTE .

INSERT INTO C##udbadmin.ESTUDIANTE (carnet, nombre, correo)


SELECT carnet, nombre, correo
FROM datos_temporales
WHERE tipo_usuario = 'Estudiante';

Conclusión
Las tareas 2, 3 y 4 las he logrado realizar con éxito. Se han creado tablespaces,
usuarios, roles y se han definido las tablas iniciales, roles y privilegios necesarios.

TALLER 2 - Administracion de Bases de Datos 6


Además, se ha realizado el tratamiento de datos, cargando información desde la tabla
temporal a las tablas definitivas. Sin embargo se me complicó la tarea 5.

Los archivos creados fueron 2: “admin.sql” en el cual es la conexion creada despues de


crear el usuario admin, para crar tablas y la base de datos en si. Y
“taller2_00034022.sql” en el cual esta la conexion como SYSDBA

TALLER 2 - Administracion de Bases de Datos 7

También podría gustarte