1.
INSTALACION Y CONFIGURACION DE UN
SGBD
CONCEPTOS GENERALES
SGBD: Es una
colección de programas que tiene como objetivo principal servir de interfax
entre la BBDD que contiene la información y el usuario, entre media de
información y usuario tenemos el software.
Está compuesto de:
·
lenguaje de definición de datos.
·
lenguaje manipulación de datos.
·
lenguaje de consulta.
El SGBD nos permite definir datos a distintos niveles, es
fundamental que este sistema garantice la seguridad y la integridad de los
mismos.
Ejemplos: DB2 – Oracle –MySQL ...
Un SGBD debe permitir:
·
Definir una BBDD (especificarla)
·
Construir una BBDD (guardar los datos en un
medio controlado)
·
Manipular la BBDD (consultas, actualización,
etc)
CARACTERISTICAS SGBD
a.
Abstracción de la información: evita que
el usuario depare en detalles que tratan sobre el almacenamiento físico de los
datos.
b.
Independencia: Consiste en la capacidad
de modificar el esquema (físico o lógico) de una BBDD, sin necesidad de aplicar
cambios en las aplicaciones que utiliza el SGBD.
c.
Redundancia mínima: Un buen diseño de una
BBDD logra evitar la aparición de información repetida, lo ideal es lograr una
redundancia nula.
d.
Consistencia: Donde no se logra la
redundancia nula hay que tener cuidado que la información repetida se actualice
de forma coherente, de forma simultánea.
e.
Seguridad: La información que se almacena
en una BBDD puede ser muy valiosa por tanto el SGBD debe garantizar que esta
información este asegurada frente a usuarios malintencionados, frente a ataques
que intenten manipular o destruir información, o simplemente ante la torpeza de
cualquier usuario.
f.
Integridad: Se trata de adoptar las
medidas necesarias para poder garantizar la validez de los datos almacenados,
fundamentalmente proteger la BBDD ante fallos de HW, ante usuarios que
introducen o modifican de forma descuidada o cualquier otra circunstancia que
pueda corromper la información de nuestra BBDD.
g.
Respaldo y recuperación: Los SGBD deben
proporcionar un sistema eficiente para realizar copias de respaldo, estas
copias de información almacenada con capacidad
de restaurar a partir de esa copia los datos perdidos.
h.
Control de la concurrencia: En cualquier dominio
profesional es frecuente es que muchas personas puedan acceder a una misma
BBDD, bien para recuperar información o almacenar..etc. También es frecuente
que exista la necesidad de que esos datos se modifiquen de forma simultánea y
por tanto un SGBD debe controlar el acceso concurrente a la información.
2. FUNCIONES DE SGBD
·
Consulta y actualización BBDD: Es el tipo
de función más básico, visible desde fuera (usuario), consiste en un grupo de
herramientas que permite a distintos grupos de usuarios extraer, modificar y
actualizar la información almacenada, algunos sistemas tiene una interfax única
llamada lenguaje de consulta.
·
Mantenimiento de esquemas: El esquema de
la BBDD es la descripción de la información que se almacena en ella; Ejemplo:
un sistema basado en tablas el esquema puede consistir en una lista de tablas
con los campos que contiene el tipo de dato, una descripción en lenguaje
natural y las restricciones de los valores. De este modo los usuarios necesita
acceder, agregar y modificar datos y por tanto también necesita acceder,
agregar y grabar el esquema de los datos. En el esquema de datos también hay
que tener en cuenta los accesos, permisos y reglas de seguridad.
·
Manejo de transacciones: Una de las aéreas
mas importantes de aplicación de un SGBD, es lo denominado procesamiento de
transacción, una transacción generalmente es muy breve en el tiempo que accede
y actualiza una parte también muy pequeña de la BBDD ejemplo: modificación de
una CTA bancaria, reserva de vuelo, verificar tarjeta de crédito. El manejo de
las transacciones consiste en controlar múltiples transacciones ejecutadas en
paralelo sobre una misma BBDD, para esto se utiliza un gestor de transacciones
que tiene una serie de objetivos:
o
Controlar el paralelismo; que una transacción
interfiera en otras.
o
Técnicas de recuperación: garantizar que la BBDD
no se vera dañada por ningún tipo de caída, física o lógica.
3.
ARQUITECTURA ANSI
Se divide en 3 niveles cuyo objetivo es
separar los programas de aplicación de la BBDD física.
En la arquitectura se definen 3 niveles de
abstracción:
·
Nivel interno o físico: se integra mediante un
esquema interno y engloba los apartados más propios del HW del SGBD, se
especifica con un modelo físico y debe describir como se almacenan físicamente
los datos, la organización de archivos, el método de acceso de los registros y
también en este nivel se almacenan el tipo de datos, la longitud, los campos
que componen, etc.
·
Nivel externo o de visión: Es el más cercano al
usuario, donde se describen los esquemas externos o las vistas. cada esquema
describe solo las partes de la BBDD que interesa al usuario, es decir,
representa una visión individual.
·
Nivel conceptual, describe la estructura de toda
la BBDD, esto lo hace de forma genérica y mediante un esquema conceptual,
muestra atributos, entidades, relaciones y operaciones. Representa de algún
modo la información que contiene la BBDD.
4. DICCIONARIO DE DATOS
Es un lugar dentro del sistema
gestor donde se deposita información acerca de los datos de la BBDD, se puede
ver como una guía que describe a la BBDD. Por ejemplo los objetos, las
especificaciones, características que hacen referencia a los datos de la BBDD.
Razones para la utilización del diccionario de datos
·
Manejar los detalles o tener constancia de los
detalles cuando la BBDD es muy grande.
·
Para asignar un solo significado a cada uno de
los elementos y actividades del sistema facilitando así la gestión.
·
Para documentar las características del sistema,
de este modo puedes incluir aspectos que distingan a estas características.
·
Especificar cuando se necesita realzar
modificaciones o acciones en la BD. Comentarios.
En el sistema de datos relacional el diccionario de datos
aportar una serie de información acerca de la estructura lógica y física de la
BBDD, aporta información sobre las definiciones de todos los objetos de la base
de datos. Aporta los valores por defecto de columnas y filas, Los valores
especificados de los valores de integridad, Los accesos o roles de cada usuario
( permisos-privilegios).
Objetos (índice-tabla-disparador-vista-espacio
asignado y utilizado)
CARACTERISTICAS QUE
DEBE CUMPLIR UN DICCIONARIO DE DATOS.
·
Debería poder soportar las descripciones de los
modelos lógicos, conceptuales, internos y externos de la BBDD.
·
También es muy importante que el diccionario
este integrado en el SGBD.
·
Debe apoyar la eficiencia en la transferencia de
información al SGBD.
·
Se encarga de que la conexión entre el nivel
interno y externo se realice dentro del tiempo de ejecución.
Podemos crear vistas en distintas
situaciones, una de ellas es:
5. ORACLE v.10g
El servidor dentro de un SGBD de tipo
Oracle, es la arquitectura motor de la BBDD, es completamente indispensable
conocer los factores y parámetros que influyan en nuestro sistema gestor de
BBDD (ORACLE), sabiendo esto podremos solucionar problemas que se puedan
plantear con las aplicaciones mas estandarizadas.
Estructuras
básicas:
·
Estructura física: encargada del almacenamiento
de datos. En la estructura física los tipos de ficheros son:
o
DATAFILES.
Dentro de los datos van a existir unos o más ficheros que contiene los
datos actuales.
o
REHACER
(REDO-LOG) “registran los cambios efectuados para poder hacer operaciones
de recuperación (RECOVERYS).
o
Existen otros ficheros que son los de Control es
información genérica, nombre de
ficheros, de la BBDD, creación de tablas, históricos, fechas de creación
.
o
Ficheros
TRACE-FILES (para rastrear) y ALERT-LOG
(registro de alamas) En ambos se registran las operaciones que se han
realizado en determinados procesos y por otro lado determinados eventos que el administrador
considere importantes para la BBDD
·
Estructura lógica: Representación de los datos y
sus relaciones, esta fundamentalmente
formada por los espacios en tablas TABLESPACES
.
TABLESPACES
o
Área lógica de almacenamiento: Nos informa sobre
cómo debe ser utilizado o gestionado el espacio físico de la BBDD
o
Describe las características del almacenamiento físico,
gestionando el almacenamiento físico de la BBDD.
o
Cada BBDD tiene al menos una TABLESPACES.
o
Cada TABLESPACES pertenece solo a una BBDD y se divide en uno o
más ficheros de datos.
ODBC: Estándar de
conectividad abierta. Definido para C.
Las aplicaciones de las BBDD se dividen normalmente en dos o
tres partes, Lógico y físico.
En una
arquitectura de dos capas la aplicación se va a dividir en un componente que
reside en la maquina cliente que llama a la funcionalidad de la BBDD que se
aloja en la maquina servidor, desde el cliente se realiza un sistema de comunicación
basado en consultas.
En las arquitecturas de 3 capas, la maquina cliente actúa
solo como frontal y no realiza ninguna llamada directa. En su lugar el cliente
se comunica con un servidor de aplicaciones normalmente lo hace mediante una
interfaz de usuario y a su vez el servidor de aplicaciones se comunica con el
sistema de BBDD simplemente para acceder a los datos.
Existen programas de aplicación que se utilizan para
interaccionar con la BBDD, lo normal se utiliza un lenguaje de BBDD o lenguaje Anfitrión
(sql – C++- Cobol- Java).
FORMAS DE ACCESO A LA BBDD.
1- Proporcionando una interfaz de programas de aplicación,
conjunto de procedimientos que se puede utilizar para enviar instrucciones del
lenguaje de manipulación de datos y también de definición de datos.
2- Extendiendo la sintaxis del lenguaje anfitrión para
poder incorporar llamadas del lenguaje de manipulación de datos, esto se hace
dentro del programa del lenguaje anfitrión.
6. SGBD CLIENTE – SERVIDOR
Oracle es un sistema cliente-servidor para
la gestión de las BBDD, normalmente el servidor es una maquina relativamente
potente que actúa de depósito de datos que a su vez funciona como SGBD, por
otro lado el cliente normalmente es una estación de trabajo, que solicita
servicios al servidor, las dos partes están comunicadas entre si por la red de
comunicaciones. En este tipo de arquitectura, que es la más utilizada en la
actualidad se considera la más avanzada en la actualidad, podemos decir que
necesita 3 tipos de software para que funcione de forma correcta:
·
Software gestión de datos: se encarga de la manipulación
y gestión de datos almacenados, a su vez requeridos por las aplicaciones,
alojado en el servidor
·
Software desarrollo se aloja en los clientes,
solo aquellos que se dedican a desarrollo de software.
·
Software de interacción con los usuarios, se
aloja en el cliente e interacciona con la interfaz grafica que utilice el
usuario.
7. VISTAS
Es un objeto, alternativa que nos permite
mostrar información en tablas, aunque tiene un aspecto virtual, se encarga de
almacenar consultas , los datos accesibles a través de esa vista (consulta) no están almacenados en la BBDD, solo
se guarda la definición de la vista, no el resultado de ella.
Una vista almacena una consulta como un
objeto para utilizarse posteriormente.
Las tablas consultadas en una vista, se
llaman tablas base, en general se podría
dar un nombre a cualquier consulta y almacenarla como una vista, una vista
suele llamarse también tabla virtual, por que los resultados que devuelve y las
referencias son las mismas que una tabla.
Las vistas permiten fundamentalmente dos
cosas:
·
Simplificar la administración de los permisos de
los usuarios por que nos permite dar al usuario ciertos permisos para acceder únicamente
a través de las vistas.
·
Mejora del rendimiento: gracias a las vistas se
puede evitar tipear instrucciones repetidamente, de este modo almacena el
resultado de una consulta. Por ejemplo una consulta muy complicada que incluya
varias tablas.
·
Vista con subconjunto de registros o campos de
una tabla
·
Crear vistas con la unión de varias tablas.
·
Crear vistas con la combinación de varias
tablas.
·
Combinas tablas y vistas.
SINTAXIS BASICA DE
UNA VISTA
·
Creación de una vista
CREATE VIEW
nombre_vista AS
SUBCONSULTA
·
Contenido de una vista
SELECT *
FROM
nombre_vista
Ejemplo
CREATE VIEW vista_empleados AS
SELECT (apellido//` `//e.nombre) AS
nombre, sexo,
s.nombre AS sección, cantidad
_hijos
FROM empleados E JOIN sección S
ON código=sección
Para ver la información
contenida en la vista que hemos creado podemos tipear (encargar una consulta)
la función SELECT con
* FROM la vista , los
nombres para las vistas deben seguir las mismas reglas que cualquier
identificador, de este modo para distinguir una tabla de una vista podemos
fijas una convención o sistema para darle nombres, lo normal es poner VISTA_NOMBRE DE TABLA.
Los campos y
expresiones que integramos en la consulta que define una vista deben tener un
nombre asi se debe colocar el nombre del campo, cuando es un campo ya calculado
o cuando hay dos campos con el mismo nombre.
Los nombres
de los campos de la consulta que define una vista es obligatorio que sean únicos.
Las vistas
se crean en la BBDD activa, al crear una vista en nuestro caso ORACLE verifica
que existan las tablas a las que hace referencia, es decir, no se puede crear
una vista que referencia a tablas que no existan y no se puede crear una vista
si ya existe un objeto con ese mismo nombre.
Es conveniente
probar, utilizar la sentencia SELECT, para definir la vista antes de crearla,
para comprobar que es el resultado que deseamos.
Una vista
siempre esta actualizada porque en el momento en que modificamos una tabla base
la vista ya mostrara esos cambios.
Se pueden
construir vistas sobre otras vistas.
MODIFICACION Y ELIMINACION DE VISTAS
Se pueden
insertar, actualizar, o eliminar datos de una tabla por medio de una vista.
Tenemos que tener en cuenta:
·
Los cambios que se realizan a las vistas no
pueden afectar a mas de una tabla consultada
·
No se pueden cambiar los campos que son
resultado de un calculo
·
Puede generar errores en caso de que afecten a
ciertos campos a los que la vista no hace referencia.
·
Para eliminar una vista utilizamos DROP VIEW, en caso de que
se elimine una tabla a la que hace referencia una vista no se elimina la vista,
hay que eliminarla explícitamente.
SEGURIDAD EN EL ACCESO A SGDB
La seguridad
es importante en cualquier sistema pero hay que hacer hincapié en un sistema
tipo ORACLE por ser multiusuario, será necesario la autenticación y establecer
una administración de usuarios óptima, así como la creación de privilegios,
funciones, etc...
Desde el
SGBD, también establecemos los límites de los recursos de la BBDD a los
usuarios.
Oracle, utiliza:
·
Autenticación de contraseña, Nombre de usuario y
contraseña.
·
También autenticación de S.O, frecuente en
sistemas que tiene una conexión directa al servidor, es decir, es el S.O el que
ejecuta el servidor de BBDD.
·
Autenticación global de usuario: Oracle
autentica el nombre de un usuario, utilizando un servidor de red externo.
Una de las tareas de ORACLE es
permitir el acceso a las BBDD y asignar permisos a objetos que conforman la
BBDD, para conectarnos a un servidor de BBDD ORACLE, necesitamos un modo de
acceso que integra todos estos permisos.
Los privilegios: Especifican que operaciones pueden
realizar cada usuario.
Un ROL: Es una agrupación de permisos de sistema, de
objeto y de grupo de usuarios, es lo mismo que un grupo de trabajo o un perfil,
permite agrupar usuarios, de este modo facilita el agregar un usuario nuevo a
la BBDD.
Los permisos: Controlan el acceso a distintos
objetos, pueden concederse a nivel usuario, o a nivel de ROL. Es decir a todos
los usuarios de un mismo grupo. Los permisos que un usuario tiene le permiten
acceder a los roles que le son concebidos, es decir, usuarios, roles y
permisos son la base de la seguridad en ORACLE.
ADMINISTRACION DE
USUARIOS
Evidentemente puede haber varios usuarios distintos en una
BBDD donde cada uno es propietario de sus objetos, para crear un usuario
tenemos que conectarnos a la BBDD, la conexión se hará en modo administrador:
CREATE
USER nombre_usuario IDENTYFIED
BY contraseña
DEFAULT
TABLESPACE nombre_tablespace_por_defecto
QUOTA cantidad
ON TABLESPACE;
DEFAULT ROLE
· La clausula IDENTYFIED BY nos permite poner una contraseña
· La clausula DEFAULT TABLESPACE , si es por defecto creara
los objetos propios del usuarios, si se omite, se utilizara el tablespace
SYSTEM.
L
Los espacios son unidades logicxas en las culaes se divide
una BBDD y es donde se almacenan los objetos, tablas, vistas…
· La clausula QUOTA, son permite configurar o especificar un espacio
concreto en la BBDD,
si no se especifica
por defecto es cero y no podrá crear objetos.
· La clausula DEFAULT ROLE creamos los perfiles.
En el ejemplo creamos un usuario
llamo ANA con una contraseña anita. Vemos que no asignamos tabla, se asigna por
defecto a la tabla SISTEM.
CREATE USER ana IDENTYFIED BY anita;
El segundo ejemplo creamos un usuario, con la contraseña
correspondiente, la tabla correspondiente y la cuota.
CREATE USER juan IDENTYFIED BY juanito
DEFAULT
TABLESPACE system
QUOTA 100M ON SYSTEM;
Una vez creado el usuario aun no nos podemos conectar por que hace
falta el permiso para crear una sesión.
·
Diccionario. Dba_users: nos muestra información de todos los usuarios creados, almacena
USERNAME, PASSWORD, ACCESS STATUS( estado), Espacio en la tabla, (DEFAULT
TABLESPACE), fecha de expiración y fecha de creación.
·
Permisos de conexión: Los usuarios necesitan permisos para acceder a
la BBDD y a los
objetos de esta, hay dos tipos de privilegios:
o
Privilegios de sistema:
o
Privilegios de objetos:
El mínimo permiso que debe tener un usuario para conectarse a la BBDD se utiliza mediante la
sentencia CREATE SESSION, es un privilegio
del sistema, para conceder permiso de
conexión a un usuario empleamos la instrucción: GRANT:
GRANT CREATE SESSION
TO USUARIO;
Ejemplo:
GRANT CREATE SESSION TO juan ;
Se puede consultar el diccionario dba_sys.privs
para encontrar los privilegios concedidos a los usuarios, nos mostrara
el nombre de usuario y el permiso.
Después de tener permiso para crear sesión
podremos utilizar el icono new conection,
Deberíamos dar nombre a la conexión, adjudicar
nombre de usuario y asignar un password.
Asignaremos la nueva conexión y esta no se abrirá:
·
Si el
usuario para quien quiera abrir una nueva sesión no existe.
·
Si la
contraseña es incorrecta.
·
Si el
usuario existe pero no tiene permiso para crear sesion.
Si consultamos el diccionario dba_sys.privs
vamos a obtener la misma información pero únicamente del usuario actual
SENTENCIA
PARA AVERIGUAR EL NOMBRE DEL USUARIO CONECTADO:
SELECT USER FROM DUAL;
10.
TABLESPACE.
Es un espacio de tablas, división lógica de
una BBDD, nos permite agrupar usuarios o aplicaciones para mejorar el
mantenimiento y la organización. Cada BBDD por lo menos tiene que tener el
espacio de tablas SYSTEM.
Cada uno de los TABLESPACE, se guarda en
disco, son archivos de datos, cada archivo de datos pertenece a un solo espacio
de tablas. 300 archivos=300 espacios de tabla.
Funciona como un puente entre el sistema de
ficheros que suele utilizar el S.O y la BBDD.
Hay 2
tipos:
TABLESPACE
SYSTEM: Se crea automáticamente
al hacer la instalación de ORACLE o al crear una BBDD. Este es el que contiene
el diccionario de datos dba_users.
TABLESPACE
TEMPORALES: Son aquellos que
solamente pueden albergar objetos temporales, no pueden albergar objetos como índices,
tablas, etc.
Cada índice en ORACLE, pertenece a un
TABLESPACE, existe una vista que nos da información sobre los TABLESPACE de
nuestra BBDD, es la siguiente:
Nos a información sobre una TABLESPACE
concreta:
SELECT tablespace_name STATUS FROM dba_tablespaces;
Sentencia básica para crear una TABLESPACE:
CREATE TABLESPACE tablespace (nombre de la tabla)
[DATAFILE archivo1,
archivo2…
Teniendo únicamente este permiso, todavía no
podemos crear tablas ni objetos, solo podemos crear una sesión, por lo tanto es
fundamental la creación de nuevo objetos.
2.
PRIVILEGIOS DEL SISTEMA
Son permisos para realizar ciertas
operaciones en la BBDD :
CREATE SESSION: Conectarse a la BBDD
CREATE TABLE: Crear
tablas
CREATE SEQUENCE: Crear
secuencias.
CREATE VIEW: Crear vistas
CREATE TRIGGER: Crear
disparadores.
CREATE PROCEDURE: crear
procedimientos y funciones.
EXECUTE ANY PROCEDURE: Ejecutar
procedimientos en cualquier esquema
CREATE USER: Crear
usuarios (especificar claves)
CREATE ROLE: Crear
roles.
DROP USER: Eliminar
usuarios.
Se asignan privilegios de sistema mediante la
instrucción GRANT
La sintaxis básica es:
GRANT privilegio
del sistema TO usuario
Oracle nos permite conceder múltiples privilegios
a múltiples usuarios todo dentro de la misma sentencia, lo separamos por comas.
Ejemplo:
GRANT CREATE session
TO
juan,ana,Felipe;
GRANT CREATE table, CREATE view Creamos
tabla y vista a 1 usuario
TO ana;
GRANT CREATE trigger, CREATE procedure Creamos 2 permisos a 2 usuarios
TO juan,ana ;
Consultando el diccionario de privilegio
podemos conceder permisos para ceder a terceros privilegios del sistema,
utilizaremos la cláusula: WITH ADMIN OPTION
Nos permite que el privilegio concedido a un
usuario pueda ser otorgado a otros usuarios por el usuario al que se lo estamos
otorgando.
GRANT
permisodesistema GRANT
CREATE TABLE Permiso de sistema para crear tabla
TO usuario TO juan Juan Tb podrá
asignar permisos para crear tablas
WITH ADMIN OPTION; WITH ADMIN OPTION;
Es una
colección de privilegios, son privilegio del sistema y de objetos, estos se
pueden conceder a usuarios y a tareas:
CARACTERISTICAS:
·
Pueden otorgarse
a cualquier usuario, pero no a si mismo ni de forma circular.
·
Su
nombre es único en la BBDD
y es distinto a cualquier usuario o ROL.
·
No
pertenecen a ningún esquema
·
Simplifican
el manejo de privilegios, los permisos pueden asignarse a un rol y este, a los
distintos usuarios.
·
Tiene un
manejo de privilegios dinamico, si recambian los privilegios asociados al rol, automáticamente
todos los privilegios de los usuarios asociados a ese rol se modifican.
CREATE ROLE “Rol” [NOT IDENTIFIED| IDENTIFIED { BY password|USING [usuario]|EXTERNALLY|GLOBALLY}];
La sentencia NOT IDENTIFIED, nos indica que no necesita contraseña para utilizar
ese rol
La sentencia IDENTIFIED { BY password indica que se requiere contraseña y se
concreta,
La sentencia EXTERNALLY, crea un rol de usuario externo
La sentencia GLOBALLY crea un rol global
Para modificar un ROL usamos la sentencia: ALTER ROLE
ALTER ROLE “Rol” { NOT IDENTIFIED| IDENTIFIED BY password USING | EXTERNALLY|
GLOBALLY}
11.
PERFIL
Es un
conjunto de propiedades asignadas a uno o mas usuarios de la BBDD , son muy frecuentes los
perfiles que limitan a ciertos usuarios, ciertos recursos del sistema, otros perfiles clásicos hacen referencia al número
de intentos de conexión fallidos que te permite Oracle, el tiempo de vida de la
contraseña.
Al
estudiar la sentencia ALTER USER, hace referencia también a la forma de
establecer un perfil y el sistema de limitación de recursos a los usuarios.
PARA CREAR UN PERFIL:
CREATE PROFILE “perfil” LIMIT {parámetros_recurso|parámetros_contraseña};
PARA MODIFICAR UN PERFIL
ALTER PROFILE “perfil” LIMIT {parámetros_recurso|parámetros_contraseña};
TEMA 3 NORMATIVA LEGAL SOBRE PROTECCIÓN DE DATOS
Compartir información
relativamente importante, es una actividad que ayuda a incrementar y mejorar la
eficiencia y la competitividad de las instituciones, también es cierto que
cuanto mayor es esta actividad, mayor es el riego que se genera en el ámbito de
la seguridad de la información. Una política correcta de seguridad de la
información implica entre otras cosas, definir e implementar estrategias o
actuaciones que garanticen aspectos como la protección e integridad de la
información.
Los costes de la mala gestión de la
información pueden ser muchos y de muy diversa naturaleza, legales, económicos
o de imagen, para garantizar la privacidad de la información, sobre todo cuando
a tiende a datos personales, información confidencial, es un o de los problemas
mas relevantes que cualquier política de seguridad debe contemplar, el marco
legal que rige la protección de datos personales, aun siendo ya muy extenso, en
la actualidad esta creciendo notablemente, en algunos casos la traducción al
lenguaje técnico forma la tarea mas complicada.
La reciente LOPD (ley orgánica de protección de datos), fija las medidas de
seguridad que deben aplicarse, esta ley en parte a contribuido a paliar esta
situación de desamparo aunque hay muchos huecos que cubrir.
Este reglamento da un paso más para
definir cuales son las actuaciones de índole técnica que un organismo o una institución
debe incrementar. La ley afecta a empresarios y profesionales y a entidades en
general, afecta a todas las que tienen en su marco de actuación el tratamiento
de datos de carácter personal.
Hay 3 niveles de seguridad:
·
Nivel Básico: Este se aplica a todos
los ficheros que tengan datos de carácter personal.
·
Nivel Medio: Se aplica a ficheros con datos
relativos a la comisión de infracciones penales, administrativas, hacienda,
patrimonio personal y datos referentes a evaluaciones personales de cada
individuo.
·
Nivel Alto: Ficheros que contengan datos sobre ideologías, religión,
creencias, vida sexual, etnia, etc.
Hay infracciones leves, graves y muy graves, la
diferencia es económica.
TEMA 4 MANTENIMIENTO Y RECUPERACION DE
ERRORES
4.1 Arranque y parada de la BBDD
Una BBDD en Oracle no estará completamente
operática hasta que el administrador inicie la instancia y abra la BBDD.
Comando para abrir la BBDD STARTUP,
este comando realiza 3 procesos dentro de la BBDD que hacen que esta, vaya
cambiando de estado hasta su apertura.
1- ARRANCA
LA INSTANCIA
Construye las estructuras de memoria
ESTADO:NOMOUNT
2- MONTA
LA BBDD
Mediante CONTROLFILE
lee ficheros físicos y comprueba que existen
ESTADO:MOUNT
3- SE ABRE
LA BBDD
Se abren los ficheros y se arranca la BD con todas sus características
ESTADO:OPEN
El comando que cierra la BD es SHUTDOWN, para esto
realiza los mismos procesos que la apertura con el comando STARTUP.
En cuanto al arranque y parada
de la BD, hay que tener en cuenta los privilegios de los usuarios, el sistema
general de ORACLE ha de analizar de
forma exhaustiva que usuarios tienen privilegios para la conexión y cuáles no.
PRIILEGIOS DE CONEXIÓN.
STARTUP: Arranca la BD y tiene la siguiente
sintaxis.
STATUP [PFILE=`ARCHIVO_PARAMS’][MODO]
Archivo PARAMS, contiene una serie de parámetros con valores que se
utilizara para poner en funcionamiento una instancia de la BD.
NOMOUNT: Es el primer estado de arranque de la BD,
en este modo arrancan los procesos y se construye la instancia, se utiliza para
deshabilitar procesos , modifica ficheros de la BD y simula el fichero de
control. Cuando ejecutamos este estado, se pueden presentar varios problemas.
1. Problemas de HW
2. Que no exista el
fichero de inicializacion
3. Algunos parámetros estén
mal, podemos hacer que se arranque con el fichero de inicio predeterminado
(INIT.ora).
STARTUP
PFILE=INIT.ora NOMOUNT
MOUNT:
Analiza
que los ficheros que le indica el parámetro CONTROLFILE, analiza que son todos
los parámetros se han especificado anteriormente y controla que la ruta
indicada sea la correcta, este estado es propio solo en caso de que queramos
hacer una copia de seguridad de BD. También puede tener una serie de problemas:
1. No existe fichero
de control
2. No haya sincronización
en los ficheros
3. Que no existan los
ficheros de datos o REDO.LOG
OPEN: Abre los ficheros
y es a partir de aquí que podemos afirmar que la BD está completamente
operativa, cuando se arranca en este estado existe la posibilidad de arrancar
una misma BD con distintas instancias.
SHUTDOWN: comando de parada
de la BBDD,
SHUTDOWN
[MODO]
El modo es el estado.
El proceso de cierre de la BBDD se realiza
al revés que el STARTUP,
1. cierra archivos y valida
transacciónes.
2. Graba en el fichero
de control el estado de los ficheros.
3. Cierra la instancia
y libera recursos
COPIAS DE SEGURIDAD DEL SISTEMA
Organizar y comprobar procedimiento de
BACKUP, en Oracle son la única garantía que existe ante los fallos del sistema,
los fallos se pueden agrupar en 4 categorías.
1. Fallos físicos,
causados por fallos del HW, tanto de BD como de Sistema
2. Fallos de diseño,
son ciertos agujeros en el SW, que pueden suceder en el S.O o en el SGBD
3. Fallos de
funcionamiento, son inherentes al usuario, bien por configuraciones incorrectas
o procedimientos erróneos de BACKUP
4. Fallos de entorno,
En estos fallos intervienen agentes externos, corriente, desastre natural, etc.
Uno de los pasos más importantes que debe tomar
el administrador de la BD, es decidir si arrancar la BD en modo ARCHIVELOG o no.
VENTAJAS:
Aunque se pierdan los ficheros de datos
siempre podremos recuperarla de los ficheros de datos y del REDO.LOG
Se pueden hacer los cambios en los BACKUP
en caliente. Con la BD abierta.
INCONVENITES:
Se necesita más espacio en disco.
El trabajo del Adm. de la BD. Es superior, porque
hay que determinar el lugar donde queremos almacenar el REDO.LOG
Un backup correcto es una copia de la información
de una BBDD suficiente para reconstruir la BD a partir de un estado utilizable.
Normalmente si el BACKUP es la copia de los
ficheros de datos, entonces se crearan ficheros de control de datos y de los
REDO.LOG ya archivados.
REGLAS
BASICAS DE UN BACKUP
1. Es muy recomendable
archivar los ficheros REDO.LOG en disco, para posteriormente copiarlos en un
BACKUP, pero siempre almacenarlos en discos distintos, al que soporta lo
ficheros de datos y el REDO.LOG activo.
2. Los ficheros copias
no deben estar en el mismo dispositivo que los originales
3. Se deberían mantener
diferentes copias de los ficheros de control colocadas en diferentes discos con
diferentes controladores.
4. Los ficheros
REDO.LOG en línea deben estar multiplexados con un mínimo de dos miembros por
grupo, recibiendo cada miembro en un grupo distinto.
5. Siempre que la estructura
de la BD cambie, se almacena esta modificación y se deben copiar los ficheros
de control por que almacenan la estructura de la BD.
ALTER DATABASE BACKUP CONTROL TO ‘destino’
MODO
CORRECTO PARA HACER UN BACKUP
1. Inicializar en modo
ARCHIVE.LOG.
2. Hacer un Backup en
un periodo de tiempo razonable de la BD
3. Copiar todos los
REDO.LOG concretando sus transacciones, con toda su información.
4. Efectuar un EXPORT
de la BD de forma periódica.
PRINCIPIO
DE RECUPERACION
Ha y varios métodos, todos se basan en la recuperación
de los archivos REDO.LOG, cuando una BD arranca con el comando STARTUP, la BD
pasa por los tres estados, y en el ultimo estado OPEN, verificamos que los archivos
REDO.LOG se pueden abrir, si la BD se arranca por primera vez después de una caída,
se necesitara efectuar una recuperación que consiste en:
1. Aplicar los
registros REDO.LOG y deshacer las transacciones que no están confirmadas
Cada fichero de datos tiene en su cabecera
el ultimo check point (punto visto
o copiado) que se ha efectuado, este
check point lleva incluido el sistema de inicio de fichero (SNC). Cuando la BD
se para en modo normal o inmediato, iguala al sistema de inicio de fichero con
el sistema de parada. De este modo la BD
encontrara el equilibrio para recuperar el sistema.
Si después de parar la BD se reemplaza un
sistema de datos por su propia seguridad, al arrancar la BD ORACLE, el sistema
detectara el contador del check point de fichero no coincide con el almacenado
en el fichero de control por tanto es necesario utilizar los ficheros REDO.LOG
archivados.
Podemos alojar la información de diferentes tablespace .
Según el diagrama podemos dividir la información en varios
tablespace, por ejemplo toda la información que esta alojada en el tablespace A
va a tener las propiedades concretas que anteriormente hemos asignado a ese
tablespace, es decir, podemos concretar el tamaño de cada tabla (puede ser de
10MB, hacer backups de los tables space que nos interesa, podemos alojar
índices de tablas que están guardadas en otras tablepsace.
El tablespace system nos aparece por defecto en todas las
bases de datos de Oracle, en el se almacena todos los datos del sistema, el
catalogo y el código fuente.
En el diagrama aparece también un tablespace temporal, en
este espacio se van a guardar todos los procesos internos de carácter temporal.
Aparece también el table space RO (read only)à
Hace el soporte de un DVD, puede ser interesante almacenar aquellas tablas y
dar requisitos a aquellos usuarios, a solo aquellos que te interesen.
El fichero de datos es la representación física de un
tablespace. Si el table space es un poco ambiguo, el fichero de datos es donde
se almacena físicamente los datos, puede tener cualquier nombre o extensión y
puede estar localizado dentro del disco duro.
Los datafiles, tienen una propiedad autoexten, si esta esta
activa, se encargara de que el data file crezca automáticamente. Crecerá
siempre y cuando se necesite un espacio y no exista. Los datafile al igual que
los tablespace, pueden estar en línea o fuera de línea.
SEGMENTO
Es un espacio diseccionado por la BBDD , esta dentro de un data
file y se utiliza por un solo objeto, así una tabla o cualquier objeto ,esta
dentro de su segmento , nunca podrá salir de el ya que si la tabla crece el
segmento también. Fisicamente todo objeto de la BBDD en la realidad no es mas que un segmento.
Hay 3 tipos de segmentos:
-
Tipos table: Contiene tablas
-
Tipo index: Contiene indices
-
Tipo rollback: Son segmentos que se utiliza para
almacenar información de la transacción activa
EXTEN
Cualquier objeto de una BBDD que figure en disco, va a tener
una relación con un “exten” es un espacio en disco que se direcciona una sola
vez. El concepto de EXTEN es fisico.
Hay 2 tipos de Exten:
-
INITIAL: Que son extensiones iniciales, porque
se crean en el momento de la creación del objeto
-
NEXT: Son todas las extensiones direccionadas
después de la dirección de objeto
Tanto en una como en otra en las dos el tamaño se puede
concretar una vez que creamos el objeto y una vez que hemos creado el objeto ya
no vamos a poder modificar el tamaño de la extensión.
INDICES
Son objetos
de BBD que nos sirven para accede a registros de un table de forma rapida,
mediante estos asceleramos la localizacion y acceso a la informacion.
Se utilizan para facilitar la obtencion de informacion dentro de una table y desempeña
la misma funccion que el indice de un libro. (Localizar registros)
Accede a los
datos de dos formas:
1-
Recorriendo
las tablas, empieza en el inicio y recorre todos los
regisotros que cumplan una determinada condicion que plantea el usuario.
2-
- Utilizando
indices, recorre la estructura del arbol del indice para localizar registros y
extraer solo los que cumplan la determinada condicion.
En Oracle,
sin indices, habria que
recorrer secuencialmente toda la table, los
indices son estructuras que se asocian a tablas que almacenan campos indexados.
Es útil cuando las tablas
contienen un numero elevado de registros, tb cuando se agrupan y combinan distintas
tablas.
Desventajas:
consume espacio en disco y genera cierto mantenimiento.
No se
recomienda crear indices sobre campos quen o utilices.
Cuando
creamos una restriccion (primary key), oracle de forma automatic crea un indice
sobre el campo de la restriccion y toma el mismo nombre, en caso de que la
tabla ya tenga un indice, oracle lo utiliza, no se crea otro.
Hay
distintos tipos de indice, el standard llamado (NORMAL), son arboles de tipo
binario.
Para crear
indices empleamos la instruccion: Create index
Create TIPO de INDICE index NOMBRE INDICE
On
NOMBRE TABLA (CAMPOS);
TIPOS DE INDICE
·
Unicos, donde los
valores no pueden duplicarse
·
NO Unicos, donde si
pueden duplicarse.
Create unique index I_Empleados_documento
On empleados (documentos);
I_ primer indice
Empleados_ Tabla
Document_ Campo.
Intentamos
aplicar un tipo de indice unico sobre un campo que contiene datos duplicados,
Oracle por defecto no permite hacerlo.
AGREGAR CAMPOS Y RESTRICCIONES
En el
momento cuando agregamos un campo, podemos agregar una restriccion:
alter table
TABLA
Add campo DEFINICION
Constraint NOMBRE-RESTRICCION;
Agregamos a
la tabla libros un campo que sea el titulo con una restriccion que sea unico.
Alter table
LIBROS
Add titulo
varchar (30)
Constraint UQ_libros_autor
unique;
Modificamos
la tabla LIBROS y agregamos un campo, un codigo de tipo numeric y no puede ser
nulo, le ponemos una restriccion de primary key
Alter table
LIBROS
Add codigo
number (4) not null
Constraint PK_libros_codigo
primary key;
Agregamos a
la table LIBROS el campo precio, tipo numeric con una restriccion que el precio
sea mayor a cero
Alter table
LIBROS
Add precio
number (6,2)
Constraint CK_libros_precio check (precio>=0);
PROCEDIMIENTOS ALMACENADOS
Es un
conjunto de intrucciones que van a tener un nombre en concreto dado por el
administrador, se almacena en la BBDD activa y fundamentalmente lo que hace es
agrupar y organizar tareas repetitivas.
VENTAJAS:
·
Comparte la logica
de la aplicacion del procedimiento con otras aplicaciones. Osea, la creacion,
el acceso del procedimiento almacenado en un solo sitio.
·
Nos permite
realizar todas las operaciones que necesitan los usuarios evitando que estos
tengan acceso directo a las tablas.
·
Disminuyen el
trafico de red, en lugar de enviar muchas instrucciones, los usuarios solo
envian la operación con una unica instrucción.
NOMENCLATURA:
CREATE OR PLACE
PROCEDURE NOMBREPROCEDIMIENTO
AS
BEGIN
INSTRUCCIONES
END;
Para ejecutar el procedimiento
EXECUTE
pa_libros_aumentar10;
No hay comentarios:
Publicar un comentario
Gracias por participar. :-)