Está en la página 1de 8

ESCUELA UNIVERSITARIA POLITÉCNICA

Departamento de Ciencias Politécnicas


Grado en Ingeniería Informática

Boletines de Prácticas 3 y 4 para


Administración de Bases de Datos

Curso 2021/2022

Profesor: Andrés Muñoz

Crear usuario client y developer


Boletín 3. Elementos básicos de la Arquitectura Oracle

1. Objetivo
El objetivo de este boletín es familiarizar al alumno con los elementos básicos de la
arquitectura Oracle utilizando las herramientas Oracle Enterprise Manager (OEM) y SQLPlus. En
particular, se proponen los siguientes objetivos:
• Aplicar las diferentes alternativas para acceder a OEM y SQLPlus.
• Saber diferenciar entre los administradores SYS y SYSTEM, y entre los privilegios
SYSOPER y SYSDBA.
• Aplicar las diferentes alternativas para arrancar/parar una base de datos.
• Consultar y modificar los parámetros de inicialización de la base de datos.
• Administrar las estructuras físicas y lógicas de la base de datos:
o Archivos de control
o Archivos de REDO log
o Archivos de datos

2. Ejercicios a realizar

NOTA: Para cada uno de los ejercicios propuestos se deben mostrar obligatoriamente los
comandos SQL o pasos seguidos en el OEM que se han llevado a cabo para resolver el
ejercicio.

Utilizando la base de datos creada en el boletín 2, se pide realizar estos ejercicios:

1. En este ejercicio se va a comprobar qué ocurre cuando se borra un archivo de control.


Para ello, realizar los siguientes pasos (con el OEM o mediante sqlplus) como usuario
SYS:
a. Parar la base de datos en modo INMEDIATO.
b. Eliminar uno de los ficheros de control de la base de datos a través de un
terminal de Ubuntu.
c. Arrancar la base de datos en modo OPEN utilizando sqlplus. ¿Qué ocurre en este
paso? ¿Qué notificación de Oracle muestra el entorno SQL? Consultar el fichero
de alerta de la base de datos y localizar la alerta correspondiente a este problema.
d. Acceder al OEM a través de un navegador Web. ¿Qué información ofrece acerca
del estado de la base de datos? Mostrar una captura de pantalla. ¿Puede un
usuario normal realizar operaciones de consulta de datos, modificación, etc. en
este estado?
e. Restaurar el fichero de control borrado mediante una copia de algunos de los
ficheros .ctl restantes.
f. Volver a abrir la base de datos en modo OPEN y comprobar que ahora se abre
correctamente.

1
2. En este ejercicio se van a administrar los ficheros de Redo Log. Se pide realizar los
siguientes pasos (con el OEM o mediante sqlplus) como usuario SYS:
a. Indicar cuántos grupos de Redo Log hay, el tamaño de cada uno, cuántos
miembros tiene cada grupo y el estado en que se encuentra cada grupo.
b. Añadir un miembro a cada grupo Redo Log existente. Indicar el nombre dado al
fichero de cada miembro y su dirección en disco. ¿Qué ventaja tiene añadir un
nuevo miembro a un grupo de Redo Log? ¿Dónde debería estar almacenado el
fichero de este nuevo miembro para aprovechar esta ventaja?
c. Cambiar el grupo de Red Log activo. ¿Qué instrucción SQL se utiliza para esto?

3. En este ejercicio comprobaremos el funcionamiento de la caché de Redo Log a la hora


de proteger los datos. Para ello iniciaremos una transacción y provocaremos una caída de
la BD, comprobando que al arrancarla de nuevo, se mantendrá la integridad de la misma.
Se pide realizar los siguientes pasos:
a. Vamos a necesitar un usuario normal de la base de datos para el ejercicio. Así,
desbloquearemos al usuario SCOTT que viene creado por defecto en la base de
datos. Para ello, abrir un terminal de Ubuntu y conectarse a la base de datos
como usuario SYS mediante sqlplus. A continuación, ejecutar la orden:

ALTER USER "SCOTT" IDENTIFIED BY "scott1" ACCOUNT UNLOCK;

Ahora tenemos al usuario SCOTT con contraseña scott1 activado.

b. Desde otro terminal de Ubuntu conectarse a la base de datos como usuario


SCOTT con sqlplus.
c. Como usuario SCOTT, crear una tabla tabla1 con un atributo c1 de tipo
varchar2 de tamaño 10 y en el tablespace users. Una vez creada, insertar
una fila de prueba con un commit y otra sin commit, de la siguiente forma:

INSERT into SCOTT.tabla1 values ('Dato1');


COMMIT;
INSERT into SCOTT.tabla1 values ('Dato2');

Tras insertar ambas filas, listar el contenido de tabla1 e indicar qué filas aparecen.

d. Desde el terminal de SYS cerrar la base de datos con la opción ABORT.


e. Desconectar al usuario SCOTT de la base de datos
f. Desde el terminal de SYS abrir la base de datos con la opción OPEN.
g. Conectarse de nuevo como SCOTT en el segundo terminal y listar el contenido
de tabla1. ¿Qué filas aparecen ahora? Explica brevemente qué es lo que ha
ocurrido en este ejercicio.

4. En este ejercicio vamos a experimentar qué ocurre al utilizar la opción


TRANSACTIONAL cuando se cierra una base de datos y un usuario está realizando
operaciones sobre ella. Se pide realizar los siguientes pasos:
a. Desde un terminal abrir la base de datos como SYS con sqlplus
b. Desde un segundo terminal conectarse a la base de datos como SCOTT con
sqlplus
c. Como SCOTT, insertar una fila en SCOTT.tabla1 sin hacer COMMIT
d. Como SYS, cerrar la base de datos con la opción TRANSACTIONAL. Esperar
un minuto. ¿Se ha cerrado la base de datos? ¿Por qué?
e. Abrir un tercer terminal e intentar conectarse a la base de datos como SCOTT de

2
nuevo. ¿Qué ocurre ahora? ¿Por qué?
f. Como SCOTT en el segundo terminal, hacer commit. ¿Se ha cerrado la base de
datos después de un tiempo corto? ¿Por qué?

5. Conectarse a la base de datos como usuario SCOTT a través de la interfaz de comandos


sqlplus. Realizar los siguientes pasos:
a. Mostrar todas las tablas asociadas al esquema del usuario SCOTT
b. Mostrar todos los campos de la tabla EMP del esquema de SCOTT
c. Escribir una consulta para mostrar los empleados que tengan un salario mayor de
2000$
d. Insertar los siguientes registros, de uno en uno, en la tabla EMP

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ------------- ------ ---------- ------------------ ---------- ---------- ----------
8000 JUAN DBA 7839 23-OCT-2012 3000 40
7900 ISABEL DBA 7839 23-OCT-2012 3000 40
8001 PEPE JUNIOR 7839 23-OCT-2012 1000 50

¿Existen problemas con alguno de los registros al insertarlos? ¿Cuáles? ¿Cómo se


podrían resolver?

6. Conectarse al OEM como SYS o SYSTEM y buscar la tabla EMP del usuario SCOTT.
Una vez encontrada, mostrar los datos que contiene. Refinar la consulta para consultar
datos para repetir el apartado c) del ejercicio 5. ¿Es posible insertar nuevos empleados
en la tabla EMP desde el OEM?

7. Realizar los siguientes apartados:


a. Mediante el OEM o sqlplus, consultar qué tipo de información y nombrar alguno
de los datos más relevantes contenidos en el tablespace SYSAUX.
b. Consultar también los parámetros básicos de inicialización de la BD. Indicar
SÓLO aquellos que tienen un valor asignado y describir muy brevemente al
menos 3 parámetros.

3. Entregables y evaluación

• Se deberá entregar un documento en el que se indiquen los pasos más relevantes


(expresiones SQL o pasos en el OEM) realizados en cada ejercicio junto con las
explicaciones pedidas en cada apartado.
• Fecha de entrega: 12 Diciembre 2021
• Puntuación:
o Ejercicios 1-6: 0,2 puntos cada uno
o Ejercicio 7: 0,3 puntos
o TOTAL: 1,5 puntos

3
Boletín 4. Administración de objetos de la BD

1. Objetivo

El objetivo de este boletín es administrar los diferentes objetos de una base de datos
(tablespaces, tablas, usuarios, roles, privilegios, etc.) con las herramientas Oracle Enterprise
Manager y SQLPlus. En particular, se proponen los siguientes objetivos:
• Aprender a crear distintos tipos de usuarios y sus roles: administrador, desarrollador,
usuario normal (consulta).
• Crear tablas en sus correspondientes tablespaces con los parámetros adecuados y
asignar tablespaces a los usuarios.
• Aprender a realizar cargas iniciales de datos.
• Entender la asignación de roles y permisos a usuarios.

2. Ejercicios a realizar
Para cada uno de los ejercicios propuestos se deben mostrar obligatoriamente los
comandos SQL o pasos seguidos en el OEM que se han llevado a cabo para resolver el
ejercicio.

Utilizando la base de datos creada en el boletín 2, se pide realizar estos ejercicios:

1. En este ejercicio se van a crear administradores de la base de datos para representar a los
alumnos del grupo de prácticas. Se pide realizar los siguientes pasos (en OEM o
sqlplus):
a. Como administrador SYSTEM, crear un usuario por cada alumno componente
del grupo de prácticas. Este usuario debe ser administrador de la base de datos y
tener las siguientes características:
• Nombre: Nombre de pila del alumno.
• Acceso por contraseña: Tiene que ser la misma que la de SYSTEM, sin
vencimiento.
• Perfil: Acceso ilimitado a todos los recursos.
• Tablespace por defecto: USERS
• Tablespace temporal: TEMP
• Rol: DBA sin opción administrador.
• Cuota de usuario: Ilimitada en la tabla USERS
• Debe estar registrado como administrador en el OEM (debe aparecer en
la lista de administradores al pinchar en la opción “Configurar” del menú
superior del OEM).

4
2. En este ejercicio se van a crear tablespaces, tablas, datos iniciales y usuarios para una
aplicación de bases de datos de una universidad. En particular, la base datos tiene las
siguientes tablas:

TABLAS ESTUDIANTE ASIGNATURA PROFESOR NOTA


Atributos DNI ID_AS DNI DNI_Estudiante
Nombre Nombre Nombre ID_AS
Apellidos Duración (S,A) Apellidos Nota
Dirección Semestre Créditos
Fecha_Nacimiento DNI_Profesor Salario

donde (S,A) significa si la duración de la asignatura es Semestral o Anual.


Se espera un rango de entre 1000 y 1500 estudiantes y 20 profesores, aunque en
futuros cursos este número puede ir aumentando gradualmente. Lo mismo ocurre con
las asignaturas, con un rango inicial de entre 15 y 20 asignaturas. Se estima que se
necesitan aproximadamente 100 bytes por estudiante y profesor, 36 bytes por asignatura
y 30 bytes por nota.

Usando cualquiera de los alumno-administrador creados en el ejercicio anterior se pide


realizar los siguientes pasos (en OEM o sqlplus):
a. Crear un tablespace persistente TS_UNIVERSIDAD y otro temporal
TS_UNIV_TEMP para la base de datos de la universidad. Indicar y justificar
que parámetros se han elegido para dichos tablespaces: tipo de gestión, estado,
tamaño inicial, opción auto-extensible (y tamaños máximo y de extensión en su
caso), nombre del fichero de datos, localización, etc.

b. Crear las cuatro tablas ESTUDIANTE, ASIGNATURA, PROFESOR y NOTA en


el tablespace TS_UNIVERSIDAD bajo el esquema del alumno-administrador
actual. Dichas tablas deben de ser de tipo “heap” (desordenada). Indicar y
justificar las claves primarias definidas, valores únicos, claves ajenas, la
posibilidad de tener valores nulos, etc., teniendo en cuenta las siguientes
restricciones:

• En las tabla ESTUDIANTE y PROFESOR, el DNI es único, pero el


nombre y el apellido pueden estar repetido (y también la combinación de
ambos)
• En la tabla ASIGNATURA, el ID_AS es único y el nombre de la
asignatura también.
• La duración de la asignatura debe indicarse siempre
• Si es anual (A), entonces el campo semestre está vacío.
• Los créditos de un profesor deben ser 6 como mínimo y no pueden pasar
de 35
• Una asignatura siempre tiene que tener un profesor asignado
• El salario de un profesor no puede ser nulo

Indicar si se ha utilizado alguna característica de los menús “Segmentos”,


“Almacenamiento” u “Opciones” al crear las tablas y por qué.

c. Utilizando la consola OEM, cargar los datos de los ficheros “estudiantes.csv”,


“asignaturas.csv”, “profesores.csv” y “notas.csv” en sus respectivas tablas. (Los
ficheros se encuentran en la carpeta Prácticas en el Campus Virtual de la

5
asignatura). Revisar los ficheros .LOG creados por Oracle para comprobar que se
han cargado los datos correctamente y mostrar el contenido para al menos uno
de ellos.

d. Crear dos usuarios para la aplicación de base de datos de universidad: developer


y client. El primero será el encargado de crear aplicaciones para la base de datos.
El segundo será el encargado de consultar y mantener los datos de las tablas
actualizados (inserción, modificación y borrado). Ambos usuarios han de tener
las siguientes características:
• Acceso por contraseña: utilizar el nombre del usuario (developer/client).
• Perfil: Crear un perfil llamado “PERF_UNIV” a partir de DEFAULT,
pero con los siguientes cambios:
o Tiempo de inactividad: 60 minutos
o Sesiones Simultáneas: 2
o Número de intentos de contraseña fallidos para la conexión: 5
o Número de días de Bloqueo: Default (1 día)
• Tablespaces por defecto y temporal: Los creados para la base de datos de
universidad
• Rol: CONNECT
• Cuota de usuario: Ilimitada en la tabla por defecto para devoloper. Sin
cuota para client.

e. ¿Tiene permisos el usuario developer para crear vistas con el fin de utilizarlas en
su aplicación? ¿Y para crear tablas? ¿Qué permisos (privilegios) tiene en total?
Usando cualquiera de los alumno-administrador, crea un rol llamado
DEVELOPER_ROLE con los siguientes privilegios de sistema (sin opción
administrador):
• Create Table
• Create View (vistas)
• Crear Synonym (sinónimos)

y el privilegio de objeto SELECT sobre las cuatro tablas de la base de datos con
la opción de otorgar a terceros activada. Asignar el rol recién creado al usuario
developer. Razonar si sería una buena decisión otorgar también a developer el
privilegio DROP ANY TABLE.

f. Conectarse a la base de datos mediante sqlplus como usuario developer. Crear las
siguientes vistas en el esquema de developer:
• Estudiantes (DNI, nombre y apellido y fecha nacimiento) nacidos después
de 1990.
• Asignaturas anuales.
• Estudiantes (DNI) con asignaturas aprobadas, mostrando el nombre de la
asignatura y la nota.

Una vez creadas, otorgar al usuario client la posibilidad de consultar mediante


SELECT las vistas creadas. ¿Puede developer otorgar los privilegios de sistema
dados en el paso anterior a otro usuario? Probad a otorgar el privilegio “Create
View” al usuario client desde el sqlplus y comentar qué ocurre. ¿Qué habría que
modificar para que developer pueda otorgar estos privilegios a otros usuarios?
¿Sería una buena decisión?

6
g. ¿Tiene permisos el usuario client para realizar consultas (SELECT) o para
modificar los datos de la base de datos de la universidad? ¿Qué permisos tiene?
Usando cualquiera de los alumno-administrador, crea un rol llamado
CLIENT_ROLE con los siguientes privilegios: SELECT, INSERT, UPDATE,
DELETE sobre las tablas de la base de datos de la universidad, y asignarlo al
usuario client.

h. Conectarse a la base de datos mediante sqlplus como usuario client. Insertar las
siguientes tuplas desde el sqlplus u OEM:

TABLA ALUMNOS
DNI NOMBRE APELLIDO DIRECCIÓN FECHA_NAC
123523 Lucas Manilva López Alhamar 3 1-NOV-1979
2567567 Antonia López Alcántara Maniquí 21 1-ENE-1979
3123689 Manuela Alcántara Pedrós Sol 2 1-SEP-1981
4896765 José Pérez Caballar Jarcha 5 3-FEB-1977

TABLA ASIGNATURA
ID_AS NOMBRE DURACIÓN SEMESTRE DNI_PROFESOR
998 Inglés A 33245681W
999 Ética S 1 44245681R

TABLA PROFESORES
DNI NOMBRE APELLIDO CREDITOS SALARIO
33245681W Pepe Pérez López 30 1200
44245681R Antonia Juárez Sánchez 32 1300

Comprobar que se han insertado mediante un SELECT en su respectiva tabla.


Consultar las tres vistas creadas por developer en el paso f y comprobar que son
correctas.

Una vez hecho esto, modificar la asignatura 998 (Inglés) para que sea Semestral
y del segundo cuatrimestre. Después eliminar la asignatura 999 (Ética) y el
profesor con DNI 33245681W. ¿Qué ocurre?

Finalmente, eliminar la tabla PROFESOR mediante el usuario alumno-


administrador. ¿Qué ocurre con las claves ajenas?

3. Entregables y evaluación
• Se deberá entregar un documento en el que se indiquen los pasos más relevantes realizados
en cada ejercicio junto con las explicaciones pedidas en cada apartado.
• NOTA: Para cada uno de los ejercicios propuestos se deben mostrar obligatoriamente
los comandos SQL o pasos seguidos en el OEM que se han llevado a cabo para resolver
el ejercicio.
• Fecha de entrega: 12 Diciembre 2021
• Puntuación:
o Ejercicio 1: 0,5 puntos
o Ejercicio 2: 2 puntos (0,25 puntos cada apartado)
o TOTAL: 2,5 puntos

También podría gustarte