SISTEMA GESTOR DE BASES DE DATOS

   
     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.




    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.

    Podemos crear vistas en distintas situaciones, una de ellas es: 
·         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;

      3.      ROLES

      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.

         INFRACCIONES Y SANCIONES

      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. :-)