Fundamentos de Sistemas Gestores de Bases de Datos (SGBD): Arquitectura, Funciones y Administración
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 12,51 KB
Sistemas Gestores de Bases de Datos
Un Sistema Gestor de Bases de Datos (SGBD) es el software que permite gestionar la base de datos conceptualmente.
Modelo ANSI/X3/SPARC
El modelo ANSI/X3/SPARC define una arquitectura de tres niveles para las bases de datos:
- Nivel externo: Define el nivel en el que los usuarios utilizan la base de datos. La forma de ver la base de datos no tiene que ver con su estructura real.
- Nivel físico: Describe la forma en la que se almacena la base de datos. Los DBA son los encargados de manejar este nivel.
- Nivel conceptual: Define la base de datos haciendo referencia a la forma en la que se relaciona con la información.
- Nivel lógico: Hace referencia a estructuras lógicas del tipo de SGBD a manejar (tablas, filas, columnas).
- Nivel interno: Modelado de la base de datos que se realiza sobre el software gestor de la base de datos. Este nivel lo maneja el DBA.
Funciones del SGBD
- Descripción o definición: Permite crear las estructuras apropiadas para integrar adecuadamente los datos. Esta función se realiza mediante el lenguaje DDL (Data Definition Language). Se pueden definir estructuras de datos, definir sus relaciones y las reglas que han de cumplir.
- Manipulación: Permite modificar y utilizar los datos de la base de datos. Se realiza mediante el lenguaje DML (Data Manipulation Language). Se puede añadir datos, eliminarlos, modificarlos o buscarlos.
- Control: Permite a los administradores proteger las visiones de datos permitidas a cada usuario. El lenguaje es el DCL (Data Control Language).
Funciones del DBA
- Configurar e instalar el software necesario para el correcto funcionamiento del SGBD.
- Instalar y mantener el SGBD.
- Crear las estructuras de almacenamiento de la base de datos.
- Crear y configurar la base de datos.
- Control de los usuarios y los permisos.
- Monitorizar y optimizar el rendimiento de la base de datos.
- Realizar tareas de copia de seguridad y recuperación.
Opciones de Funcionamiento de un SGBD
- SGBD monocapa: Sistemas Gestores instalados en una máquina desde la que se conectan usuarios y administradores.
- SGBD de dos capas: Modelo cliente/servidor. La base de datos y el gestor se alojan en un servidor al cual se conectan los usuarios desde clientes. Los clientes deben instalar software cliente de acceso según la configuración del administrador:
- Arquitectura cliente/servidor: Un servidor para la base de datos al que se conectan los clientes.
- Arquitectura cliente/multiservidor: La base de datos se distribuye entre varios servidores.
- SGBD de tres o más capas: Entre el cliente y el servidor hay una capa intermedia que se encarga de recoger las solicitudes de los clientes y de comunicársela al servidor y viceversa.
Arquitectura de un SGBD
La arquitectura de un SGBD hace referencia al modelo interno de funcionamiento del sistema.
Estructuras Lógicas de la Base de Datos
- Tablas: Compuestas de filas y columnas donde se guardan los datos de la base de datos.
- Restricciones: Reglas que han de cumplir los datos para que se consideren válidos.
- Índices: Lista ordenada de claves que permite acceder a los valores de una o más columnas rápidamente.
- Vistas: Consultas almacenadas que nos permiten mostrar los datos de una o varias tablas.
- Procedimiento y función: Código del lenguaje procedimental de la base de datos utilizado para ejecutar acciones sobre las tablas.
Estructuras Físicas de la Base de Datos
Los elementos lógicos deben almacenarse en archivos que deben ser controlados por el DBA. Oracle proporciona los tablespaces.
Instancias de Base de Datos
Se dispone de un software en un equipo cliente capaz de conectar con el SGBD. Este lanza un proceso de usuario con el proceso servidor que se comunica con la instancia de la base de datos.
Ficheros LOG
Almacenan información sobre los numerosos eventos producidos en un SGBD. Estos ficheros ayudan a conocer el SGBD y permiten al DBA averiguar las causas de un mal funcionamiento y auditar todas las operaciones realizadas.
Consultas y Comandos en Oracle
Vistas
- dba_data_files: para ver los archivos utilizados en los tablespaces.
- user_free_space: extensiones libres en tablespaces a las que puede acceder el usuario. No tienen por qué estar en bloques consecutivos.
- dba_free_space: extensiones libres en todos los tablespaces.
- dba_tablespaces: descripción de todos los tablespaces.
- dba_ts_quotas: describe los bytes utilizados por los usuarios en cada tablespace.
- user_synonyms: permite observar la lista de sinónimos del usuario.
- all_synonyms: permite mostrar la lista completa de sinónimos.
- user_indexes: almacena información de los índices creados por los usuarios.
- user_ind_columns: almacena información de las columnas índices de las tablas creadas por los usuarios.
- dba_sys_privs: privilegios del sistema concedidos a usuarios y roles.
- dba_tab_privs: lista de todos los privilegios de todos los objetos de la base de datos.
- dba_col_privs: lista de todos los privilegios aplicados a columnas de la base de datos.
- session_privs: privilegios en activo para el usuario y sesión actual.
- user_sys_privs: obtendremos la misma información que "dba_sys_privs" pero únicamente del usuario actual.
- dba_roles: muestra todos los roles de la base de datos.
- dba_role_privs: roles asignados a los usuarios.
- role_role_privs: roles asignados a otros roles.
- role_sys_privs: privilegios de sistema asignados a roles.
- role_tab_privs: privilegios de objeto concedidos a roles.
- session_roles: roles en activo para el usuario actual.
Comandos
- Crear Tablespace:
CREATE TABLESPACE nb_tablespace DATAFILE 'nb_archivo' [SIZE entero [K|M] [REUSE]], [DEFAULT STORAGE (INITIAL tamaño NEXT tamaño MINEXTENTS tamaño MAXEXTENTS tamaño PCTINCREASE valor)] [ONLINE|OFFLINE];
- Modificar Tablespace:
ALTER TABLESPACE nb_tablespace {ADD DATAFILE 'nb_archivo' [SIZE entero [K|M]] [REUSE] [AUTOEXTEND ON|OFF] | RENAME DATAFILE 'nb_archivo', 'nb_archivo2' TO 'nb_nuevo_archivo' | DEFAULT STORAGE clausula_de_almacenamiento | ONLINE | OFFLINE};
- Borrar Tablespace:
DROP TABLESPACE nb_tablespace [INCLUDING CONTENTS];
- Crear Sinónimo:
CREATE [PUBLIC] SYNONYM nb_sinónimo FOR [usuario.]objeto [@dbenlace];
- Crear Índice:
CREATE INDEX nb_index ON table (column1 [, column2...]);
- Crear Usuario:
CREATE USER nb_usuario IDENTIFIED BY clave_de_acceso [DEFAULT TABLESPACE nb_tablespace] [TEMPORARY TABLESPACE nb_tablespace] [QUOTA {entero {K|M} | UNLIMITED} ON nb_tablespace] [PROFILE nb_perfil];
- Asignar Privilegios:
GRANT {priv_objeto [, ... | ALL [PRIVILEGES]} [(columna [, columna]...)] ON usuario.objeto TO {usuario | rol | PUBLIC} [WITH GRANT OPTION];
- Asignar Rol:
GRANT rol TO {usuario | rol | PUBLIC [, {usuario | rol | PUBLIC} [,...]]} [WITH ADMIN OPTION];
- Crear Perfil:
CREATE PROFILE nb_perfil LIMIT {parámetros_recursos | parámetros_contraseña} {entero [K|M] | UNLIMITED | DEFAULT};
- Crear Vista:
CREATE [OR REPLACE] VIEW nb_vista AS SELECT (etc) FROM (etc) [WITH CHECK OPTION [CONSTRAINT nb_constraint]] [WITH READ ONLY];
- Modificar Vista:
CREATE OR REPLACE VIEW empvu10 (codemp, nombre, trabajo) AS SELECT empno, ename, job FROM emp WHERE deptno = 10;
Ejercicios Prácticos
Indica los 3 niveles ANSI/X3/SPARC:
- Nivel Externo: Nivel en el que los usuarios utilizan la base de datos.
- Nivel Físico: Es la forma en que se almacenan los datos en la base de datos. Es el DBA quien los administra.
- Nivel Conceptual: Define la base de datos haciendo referencia a la forma en que se relaciona la información.
Concepto de Tablespace: Son unidades lógicas de almacenamiento. Una base de datos está dividida en una o más tablespaces. El tamaño de una base de datos es la suma de sus tablespaces.
¿Para qué se utilizan los ficheros redolog en un SGBD? Son archivos que almacenan los cambios realizados sobre los datos para, en caso de fallo, poder recuperar los cambios validados.
Indica dos estructuras de memoria que utiliza Oracle:
- PGA (Program Global Area): Área global del programa o de proceso. Es la zona de la memoria utilizada por un único proceso de usuario, y contiene datos e información del proceso.
- SGA (System Global Area): Área global del sistema. Es un grupo de estructuras de memoria que sirven para almacenar los datos de la base de datos que se han consultado más recientemente.
Crea un rol llamado Examen_rol con los siguientes privilegios: SELECT en la tabla 1, CREATE SESSION, CREATE TABLE. Define qué tipo de privilegios son los anteriores.
- SELECT: Efectuar selecciones de la tabla o vista indicada. Es un privilegio simple.
- CREATE TABLE: Crear tablas. Complejo.
- CREATE SESSION: Conectarse a la base de datos. Complejo.
Comandos:
CONNECT SYSTEM/MANAGER;
CREATE ROLE examen_rol;
GRANT CREATE TABLE, CREATE SESSION TO examen_rol;
GRANT SELECT ON tabla1 TO examen_rol;
Crear un usuario llamado alumno con un password alumno, 1M de tablespace examen y asigne el rol anterior.
Comandos:
CREATE USER alumno IDENTIFIED BY alumno DEFAULT TABLESPACE examen QUOTA 1M ON examen;
GRANT examen_rol TO alumno;
Visualizar los roles asignados a cada usuario:
SELECT * FROM dba_role_privs;
El usuario alumno1 concede a alumno3 el privilegio (INSERT) para insertar datos en la tabla1 y además para que los pueda pasar.
Comandos:
CONNECT alumno1/alumno1;
GRANT INSERT ON tabla1 TO alumno3 WITH ADMIN OPTION;
Comprobar los privilegios que tiene asignado alumno3:
Comandos:
CONNECT alumno3/alumno3;
SELECT privilege FROM session_privs;
Alumno1 quita los privilegios INSERT sobre la tabla1 a alumno3:
REVOKE INSERT ON tabla1 FROM alumno3;