Sei sulla pagina 1di 46

3.1 Consideraciones de diseo. 3.2 Normalizacin. 3.3 Integridad de bases de datos.

3.3.1 Concepto. 3.3.2 Restricciones bsicas (not null, llave primaria, orden, verificacin y asercin ). 3.3.3 Integridad de entidad. 3.3.4 Integridad referencial. 3.3.5 Reglas de relacin. 3.3.6 Reglas de base de datos. 3.3.7 Reglas de negocios.

3.4 Seguridad de bases de datos.


3.4.1 3.4.2 3.4.3 3.4.4 Concepto de seguridad. Autenticacin y autorizacin. Rol y privilegios de usuarios. Vistas y seguridad.

3.5 Recuperacin de bases de datos. 3.5.1 Transacciones. 3.5.1.1 Definicin de transaccin. 3.5.1.2 Propiedades de Atomicidad, Consistencia, Aislamiento y Durabilidad (ACID). 3.5.1.3 Estados de las transacciones. 3.5.2 Bitcora. 3.5.2.1 Tipos de bitcora. 3.5.2.2 Contenido de la bitcora. Diccionario de datos. 3.6.1 Concepto. 3.6.2 Contenido y funcin. 3.6.3 Tipos.

3.6

El trmino integridad de datos se refiere a la correccin y completitud de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden aadirse datos no vlidos a la base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energa. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se aade un pedido de un producto sin ajustar la cantidad disponible para vender.

Not Null (datos requeridos). Establece que una columna tenga un valor no nulo. Se define efectuando la declaracin de una columna es NOT NULL cuando la tabla que contiene las columnas se crea por primera vez, como parte de la sentencia CREATE TABLE.

Establece que la clave primaria de una tabla debe tener un valor nico para cada fila de la tabla; si no, la base de datos perder su integridad. Se especifica en la sentencia CREATE TABLE. El DBMS comprueba automticamente la unicidad del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallar.

Llave primaria
MySQL:

Not null

CREATE TABLE Customer (SID integer, Last_Name varchar(30), First_Name varchar(30), PRIMARY KEY (SID));

CREATE TABLE Customer (SID integer NOT NULL, Last_Name varchar (30) NOT NULL, First_Name varchar(30));

Orden. Indica el orden de declaracin de los atributos de la tabla. Se indica en la sentencia CREATE TABLE, es importante en las sentencias de INSERT al agregar nuevas tuplas a una tabla.

Se usa para validar que los datos pertenezcan a un dominio predefinido. Se pueden hacer verificaciones ms especficas, como el rango de un valor. Se usa la clausula CHECK.

Ejemplo en SQL de My SQL:

CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (P_Id > 0) )

Es un enunciado SQL que asegura que cierta condicin en la base de datos existir siempre. Por ejemplo, en un banco la condicin de que la suma de los prstamos nunca exceda a la suma de los depsitos.

El salario de un empleado nunca debe ser mayor que el salario de su Jefe de Departamento

CREAT ASSERTION SALARY_CONSTRAINT CHECK (NOT EXISTS (SELECT * FROM EMPLOYEE E, EMPLOYEE M, DEPARTMENT D WHERE E.SALARY > M.SALARY AND E.DNO=D.NUMBER AND D.MGRSSN=M.SSN))

Las restricciones de entidades aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel ms simple, la existencia de una clave principal es una restriccin de entidad que impone la regla "cada entidad debe estar identificada de forma nica". En esta no est permitido que algn componente de la clave primaria acepte valores nulos.

La regla de Integridad referencial define que la base de datos no debe contener valores de claves forneas sin concordancia. Esta regla se aplica a las claves forneas. Si en una relacin hay alguna clave fornea, entonces sus valores deben coincidir con los valores de la clave primaria a la que hace referencia, o bien, debe ser completamente nulo. Esta regla impide que, por ejemplo, en una base de datos acadmica, exista un profesor en un departamento inexistente, o un curso impartido por un profesor inexistente.

Suponer las tablas:

Sentencia SQL para declarar la llave fornea:

CREATE TABLE ORDERS (Order_ID integer, Order_Date date, Customer_SID integer, Amount double, Primary Key (Order_ID), Foreign Key (Customer_SID) references CUSTOMER(SID));

Se refiere a los aspectos de: Orden de las tuplas en una relacin : una relacin se define como un conjunto de tuplas matemticamente, los elementos de un conjunto no estn ordenados; por tanto, las tuplas de una relacin no tienen orden especfico. Orden de los valores dentro de una tupla, y definicin alternativa de relacin : Una tupla es una lista ordenada de n valores, as que el orden de los valores de una tupla y por tanto de los atributos en la definicin de un esquema de relacin es importante. Valores en las tuplas: Cada valor en una tupla es un valor atmico; esto es, no es divisible en componentes en lo que respecta al modelo relacional. Por ello no se permiten valores compuestos ni multivaluados.

Uso del modelo relacional. Acceso garantizado a cada dato. Tratamiento de valores nulos. Diccionario en lnea. Uso de un lenguaje de bases de datos. Reglas de actualizacin de vistas. Insercin, actualizacin y borrado de alto nivel. Independencia fsica. Independencia lgica. Integridad incluida en la BD. Independencia de distribucin.

Es cualquier restriccin, necesidad, requerimiento, o actividad especial que debe ser verificada al momento de intentar grabar informacin, borrar, actualizar o consultar la ya existente. Ejemplo, se puede definir un campo o una tabla que contenga informacin relacionada los clientes a los que se les vende algn determinado producto. Tal vez, la regla indique, que las claves para determinados clientes de una determinada regin empiece con A, para otros con B, etc.

3.4.1 Concepto de seguridad. Consiste en las acciones que toma el diseador de base de datos al momento de crear la base de datos, tomando en cuenta el volumen de las transacciones y las restricciones que tiene que especificar en el acceso a los datos; esto permitir que el usuario adecuado sea quin visualice la informacin adecuada.

Autenticacin. Se refiere a la tarea de verificar la identidad de una persona o software que se conecte a una BD; es decir consiste en un nombre de usuario y una contrasea secreta que se debe presentar cuando se abra una conexin a la BD.
Por ejemplo, MySQL, encripta la informacin que proporciona el usuario para su autenticacin.

Proceso de permitir al acceso de una persona a un sistema, a una BD, u objetos particulares de la BD (tablas, vistas, etc.). Los usuarios pueden tener varios tipos de autorizacin para diferentes partes de la base de datos: Lectura. Insercin. Actualizacin. Borrado.
MODIFICAR EL ESQUEMA DE LA BD ndices. Recursos. Alteracin. Eliminacin.

Primero ser necesario crear los usuarios. En MySQL se puede usar la interfase grfica para crearlos.

Un rol es un papel desempeado por un individuo dentro de un conjunto de personas. En la base de datos, siempre existen un conjunto de personas que harn uso de ella, las acciones que pueden hacer son: visualizacin, modificacin, agregacin, eliminacin de registros entre algunas otras, y la regla que permite esto es conocida como privilegio. La cual es el permiso que tienen los usuarios para realizar una operacin determinada.

Caractersticas No son propiedad de nadie ni estn en un esquema.

Se puede dar acceso a cualquier usuario a un rol excepto a uno mismo (reflexiva). Pueden ser activados y desactivados, por usuarios autorizados (contrasea).

Las definiciones de roles son almacenadas en el diccionario.


Un rol puede decidir el acceso se usuario a un objeto, pero no puede permitir la creacin de objetos.

Gua para la creacin de roles:

Crear un rol para cada aplicacin (rol de aplicacin). Crear un rol para cada tipo de usuario (rol de usuario). Conceder privilegio de acceso a roles de aplicaciones por parte de los roles de usuario. Dar privilegio de acceso a roles de aplicacin y roles de usuario a los usuarios.

Se proporciona un grupo de roles predefinidos: connect, resource, dba, exp_full_database, imp_full_database.

A nivel de Objeto: El derecho a ejecutar una accin sobre una tabla, vista, secuencia, disparador o procedimiento almacenado especfico. Puede incluir permisos para pasar privilegios de uno a otro usuario (with grant option). El propietario de un objeto adquiere automticamente todos los privilegios sobre dicho objeto. Los privilegios son: alter, execute, delete, index, insert, references, select, update, all. A nivel de Sistema: Derecho a ejecutar un tipo de comando sobre objetos de un esquema, objetos de un tipo especificado, sobre el sistema o sobre un usuario. El DBA puede tener cualquier variedad de privilegios del sistema. Existen unos 80 privilegios distintos disponibles.

Se usa la sentencia grant para dar autorizaciones. El formato es: Grant <lista_privilegios> on <lista_objetos> to <lista_usuarios>
Ejemplos: grant select on sucursal to U1, U2, U3 grant update (importe) on prestamo to U1, U3 grant select on sucursal to U1 with grant option

Se usa la sentencia revoke, con el formato:

revoke <lista_privilegios> on <lista_objetos> from <lista_usuarios> [restrict | cascade] Ejemplos: Revoke select on sucursal from U1, U3 cascade Revoke update(importe) on prestamo from U1, U2

Las vistas son una forma de proporcionar al usuario un modelo personalizado de la base de datos. Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es que slo se almacena de ellas la definicin, no los datos.

Una vista es el resultado dinmico de una o varias operaciones relacionales realizadas sobre las relaciones base. Una vista es una relacin virtual que se produce cuando un usuario la consulta. Al usuario le parece que la vista es una relacin que existe y la puede manipular como si se tratara de una relacin base, pero la vista no est almacenada fsicamente.

Las vistas son tiles por varias razones:

Proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios. Permiten que los usuarios accedan a los datos en el formato que ellos desean o necesitan. Se pueden simplificar operaciones sobre las relaciones base que son complejas. Por ejemplo, se puede definir una vista como la concatenacin de dos relaciones.

Suponer que se tiene la tabla: Tabla Customer (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date date) Se quiere crear una vista denominada V_Customer que contiene slo las columnas First_Name, Last_Name y Pas de esta tabla, y solo tuplas del pas Mexico CREATE VIEW V_Customer AS SELECT First_Name, Last_Name, Country FROM Customer WHERE Country = Mexico

Son los mecanismos que incorporan los sistemas de bases de datos para mantener la consistencia de la BD a pesar de: fallas de diversos tipos y acceso concurrente.

Una transaccin es un programa que es tratado como una unidad lgica, y contiene varias operaciones en la base de datos.
Ejemplo de transaccin, la transferencia de una cantidad de dinero de una cuenta A a una cuenta B. Operaciones: leer datos, verificar requisitos, actualizar cuenta A, actualizar cuenta B.

Una transaccin en un Sistema de Gestin de Bases de Datos (SGBD), es un conjunto de rdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atmica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transaccin, empieza a deshacer las rdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transaccin nunca se hubiese realizado.

Atomicidad: es la propiedad que asegura que la operacin se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias. Consistencia: es la propiedad que asegura que slo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos. Aislamiento: es la propiedad que asegura que una operacin no puede afectar a otras. Esto asegura que la realizacin de dos transacciones sobre la misma informacin sean independientes y no generen ningn tipo de error. Durabilidad: es la propiedad que asegura que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.

Activa. Es el estado inicial, permanece en este estado durante la ejecucin. Parcialmente comprometida. Despus de ejecutarse la ltima instruccin. Fallida. Se descubre que no puede continuar con la ejecucin normal. Abortada. Despus de haber retrocedido la transaccin y restablecido la BD a su estado anterior al comienzo de la transaccin. Comprometida. Se completa con xito, los cambios realizados son permanentes en la BD.

La bitcora o registro histrico (en ingls: transaction log, database log o binary log) es la estructura ms comn que usan los sistemas de BD para guardar las modificaciones realizadas.
Est formada por una secuencia de registros y mantiene un registro de todas las actividades de actualizacin de la BD. El sistema la utilizada para la recuperacin del sistema despus de una falla y para garantizar las propiedades ACID de las transacciones.

El sistema guarda diferentes tipos de registros en la bitcora, dependiendo del evento ocurrido en la BD.
Por ejemplo: Un registro de actualizacin describe una escritura nica en la BD y tiene los campos:
ID_Transaccin. ID_elemento_datos. Valor anterior. Valor nuevo.

Otros registros indican eventos especiales como: inicio de transaccin, xito o fracaso de la misma. Una posible vista de la bitcora puede ser:
Descripcin La transaccin Ti ha comenzado.

Registro <Ti, iniciada>

<Ti, Xj, V1, V2>

<Ti, comprometida> <Ti, abortada>

La transaccin Ti ha realizado una escritura sobre el dato Xj. Xj tena el valor V1 antes de la escritura y tendr el valor V2 despus de la escritura La transaccin Ti se ha comprometido. La transaccin Ti ha sido abortada.

Entonces, como mencionamos antes la bitcora contiene modificaciones y eventos importantes en la BD. Los tipos de registros son:
Actualizacin de la BD. Compensacin. Commit. Abort. Checkpoint. Terminacin.

3.6.1 Concepto. Un diccionario de datos es un conjunto de metadatos (descripcin de datos). Es un almacn centralizado de informacin acerca de los datos, como su significado, sus relaciones, origen, uso y formato. En los sistemas de BD esta almacenado junto con la BD. Se crea como resultado de las sentencias del LDD. Y se puede consultar con el LMD.

Contiene una descripcin de cada objeto de la BD (tablas, vistas, ndices, procedimientos almacenados, disparadores, etc.). Por ejemplo, para una tabla, contiene informacin sobre su nombre, los campos y sus tipos de datos, las restricciones de integridad, etc.

Algunas funciones: Los usuarios y aplicaciones pueden consultarlo y obtener descripciones de los objetos. Se usa por el compilador del LMD para validar las sentencias.

Algunos de los tipos de tablas de diccionario de datos de SQL:2003:


Contenido Fila por usuario. Fila por dominio. Fila por cada restriccin de dominio. Fila por cada tabla y vista. Fila por vista. Fila por columna. Fila por cada restriccin de tabla. Fila por cada restriccin de referencia.

Tabla USERS DOMAINS DOMAIN_CONSTRAINTS TABLES VIEWS COLUMNS TABLE_CONSTRAINTS REFERENTIAL_CONSTRAINTS

Potrebbero piacerti anche