Академический Документы
Профессиональный Документы
Культура Документы
Disparadores (TRIGGER): Procedimientos que se ejecutan cuando ocurre algn evento (INSERT, UPDATE o DELETE).
Sinnimos (SYNONYM):Simplifican el uso de nombres largos (propietario.tabla).
Roles (ROLE): Los roles son conjuntos de privilegios que pueden concederse de golpe a un usuario. Los Privilegios pueden ser de Objetos(para
INSERT, SELECT, UPDATE, DELETE, EXECUTE ...) o del Sistema(para crear tablas, vistas...).
Definicin de tablas
Definicin_relacin_bsica ::= CREATE TABLE nom_relacin (elemento_relacin1, elemento_relacin2, )
elemento_relacin ::= definicin_atributo | restriccin_relacin
definicin_atributo::= nom_atributo tipo_datos [DEFAULT (expresin)]
[restriccin_atributo1 restriccin_atributo2]
tipo_datos::= CHAR (longitud) | VARCHAR2 (longitud) | NUMBER [(precisin[, escala])] | DATE
restriccin_atributo ::= [CONSTRAINT nom_restriccin] {[NOT] NULL | UNIQUE | PRIMARY KEY | REFERENCES
nom_relacin* [(nom_atributo*)] [ON DELETE {CASCADE | SET NULL}] | CHECK (condicin)}
[cundo_comprobar]
restriccin_relacin::= [CONSTRAINT nom_restriccin] { UNIQUE (nom_atributo1, nom_atributo2, ) |
PRIMARY KEY (nom_atributo1, nom_atributo2, ) | FOREIGN KEY (nom_atributo1, nom_atributo2, )
REFERENCES nom_relacin [(nom_atributo1, nom_atributo2, )] [ON DELETE {CASCADE | SET NULL} | CHECK
(condicin)} [cundo_comprobar]
cundo_comprobar::= [NOT] DEFERRABLE [INITIALLY {IMMEDIATE | DEFERRED}]
CHAR(n)
Cadena de caracteres de longitud fija, tiene un tamao n bytes. Si no se especifica n la ORACLE le da un tamao de 255 bytes. El tamao
mximo es 2000 bytes y el mnimo 1 byte. El tamao mximo en PL/SQL es 32767 bytes y el mnimo 1 byte. CHARACTER es sinnimo de
CHAR.
VARCHAR2(n)
Cadena de caracteres de longitud variable, tiene un tamao mximo de n bytes. Es obligatorio especificar el tamao. El tamao mximo es
4000 bytes y el mnimo 1 byte. El tamao mximo en PL/SQL es 32767 bytes y el mnimo 1 byte. STRING y VARCHAR son sinnimos de
VARCHAR2.
NUMBER(p,s)
Nmero de p dgitos de los cuales s son decimales. No es obligatorio especificar el tamao. El tamao de p va de 1 a 38 y el s desde -84 a
127.
El tamao en PL/SQL 1E-130 .. 10E125. Sinnimos: nmeros de coma fija: DEC,DECIMAL,NUMERIC enteros: INTEGER (sinnimo de
NUMBER(38)), INT, SMALLINT coma flotante: DOUBLE PRECISION FLOAT REAL.
DATE
Fecha vlida. Desde el 1 de enero del 4712 AC hasta el 31 de diciembre del 9999 DC. (en Oracle7 = 4712 DC)
LONG
Cadena de caracteres de longitud variable. Es una versin ms grande de VARCHAR2. El tamao mximo en BD es 2 Gigabytes.
CLOB
Cadena de caracteres de longitud variable. Es una versin ms grande de VARCHAR2. El tamao mximo en BD es 4 Gigabytes.
Es recomendable usar CLOB o BLOB en lugar de LONG.
BLOB
Objeto binario de longitud variable. Es una versin ms grande de RAW. El tamao mximo en BD es 4 Gigabytes.
BFILE
TIMESTAMP (f)
Es un fecha que contiene que contiene fracciones de segundo. Con f se define el nmero de dgitos en la fraccin de segundo. As, f puede
valer desde 0 hasta 9, el valor por defecto es 6.
Periodo de tiempo definido en aos y meses donde y es el nmero de dgitos del ao. Puede valer de 0 a 9. (por defecto es 2)
Periodo de tiempo definido en das, horas, minutos y segundos. d es el mximo numero de dgitos en el da, f es el mximo numero de
dgitos en el campo de segundos. d va de 0 a 9. (por defecto es 2), f va de 0 a 9. (por defecto es 6)
ROWID
Cadena hexadecimal que representa de forma nica una fila en una tabla (pero no nica en cualquier tabla).
UROWID
Cadena hexadecimal que representa de forma nica una fila ORDENADA en una tabla (pero no nica en cualquier tabla).
RAW(n)
Objeto binario de longitud variable. Es obligatorio especificar el tamao. El tamao mximo es 2000 bytes y el mnimo 1 byte. El tamao
mximo en PL/SQL es 32767 bytes y el mnimo 1 byte.
LONG RAW
Objeto binario de longitud variable. El tamao mximo es 2 Gigabytes. El tamao mximo en PL/SQL es 32767 bytes y el mnimo 1 byte.
Restricciones de Integridad
La integridad de los datos es la propiedad que asegura que informacin dada es correcta, al
cumplir ciertas aserciones.
Las restricciones de integridad son propiedades de la base de datos que se deben satisfacer
en cualquier momento.
Entre los diferentes tipos de restricciones dentro de un SABD tenemos:
Tipos de restricciones
Existen dos tipos de restricciones:
Estticas: limitan los estados permitidos de la Base de Datos.
Dinmicas: restringen las posibles transiciones de estados de la base datos.
Para incorporar el tratamiento de las restricciones de integridad en el sistema se
pueden realizar:
Aadiendo cdigo adicional para verificar y asegurar que se cumplen las
restricciones.
Declarando las restricciones como parte del esquema de la base de datos.
Restricciones en un SABD
Restriccin de Dominio: slo los objetos especificados pueden servir como dominio de
un atributo.
Restriccin de Unicidad: un objeto podr ser unvocamente identificable usando un
determinado atributo.
Restriccin de Integridad de Entidad: ningn componente de clave primaria de una
relacin puede aceptar nulos. Nulo se referir a informacin faltante. El concepto de
unicidad es parte de la definicin de clave primaria en s.
Restriccin de Integridad Referencial: la base de datos no puede contener valores de
clave ajena sin concordancia. La posibilidad de aceptacin de valores nulos deber ser
evaluada por el analista, al igual de las opciones a seguir (restriccin, propagacin o
anulacin)
Procesamiento de restricciones
Todas las definiciones de restricciones (tratamiento de nulos, claves primarias, ajenas
etc.) ya sean a nivel de columna o a nivel de tabla, tienen un nombre.
Como esta asignacin de nombre por parte del diseador es opcional, si no se le
asigna nombre en el momento de la definicin, el SABD le asigna uno interno. En
cualquier caso, es conveniente declarar una restriccin con su nombre porque as es
posible referenciarla posteriormente en sentencias ALTER TABLE, para activarla o
desactivarla.
A nivel tabla:
[CONSTRAINT nombre] PRIMARY KEY(colum1,.. colum2 ..)
Ejemplo:
A nivel columna:
Dni integer [CONSTRAINT pk_dni] PRIMARY KEY
A nivel tabla:
CONSTRAINT pk_nomapelli PRIMARY KEY(nom, apelli)
Ejemplo:
nombre char CONSTRAINT unq_nombre UNIQUE
asociada a la tabla
[CONSTRAINT nombre] UNIQUE (columna1, columna2 ...)
Ejemplo:
CONSTRAINT unq_nomapell UNIQUE(nombre, apellidos)
Las restricciones de integridad estticas sern aquellas frmulas bien formadas de primer orden construidas con
atributos de la tabla como trminos bsicos, que debe satisfacerse en todos los estados vlidos para las tuplas de una
relacin.
Estas restricciones de integridad estn especificadas mediante una restriccin de tipo CHECK asociada a una columna o
una tabla.
La implementacin de esta restriccin en una columna sera:
atributo tipo [CONSTRAINT nombre] CHECK (condicin)
Ejemplo:
Saldo integer CONSTRAINT chk_saldo CHECK (saldo != 2000.00)
La condicin puede hacer referencia a cualquier columna de la tabla.
No se pueden introducir en estas condiciones atributos de otras tablas. En ese caso, slo queda el recurso de programar
explcitamente la restriccin de integridad, lo que habitualmente se hace generando disparadores (triggers) de la base
de datos.
Modificacin de restricciones
La sentencia ALTER TABLE sirve para aadir o redefinir una columna, aadir o borrar una restriccin de
integridad y para activar o desactivar cualquier restriccin de integridad o disparo.
ALTER TABLE [esquema.]nom_tabla
en donde:
def_de_restriccion_col y def_restriccion_tabla se refieren a las declaraciones de restricciones que se pueden realizar en el mbito de una
columna o de la tabla en su conjunto respectivamente.
Si deshabilitamos una restriccin tenemos la posibilidad de deshabilitar en cascada todas las restricciones que dependan de ella a travs de la
clusula cascade.
Si habilitamos una restriccin de integridad referencial, la restriccin de clave primaria o nica asociada debe ser habilitada con anterioridad (si
no lo estaba ya).
Las opciones asociadas a UNIQUE identifican la clave nica implicada en la modificacin indicndola entre parntesis.
La clusula ENABLE ALL TRIGGERS permite activar disparos que puedan haber sido desactivados con la orden ALTER TRIGGER opcin DISABLE
proporcionada por ORACLE.
La sentencia SET CONSTRAINTS es usada para establecer el modo de la restriccin especificada para la
transaccin actual:
SET CONSTRAINTS
{ALL | nombre_restriccion[,...]}
{DEFERRED | IMMEDIATE}
Las restricciones pueden ser definidas como INITIALLY IMMEDIATE o INITIALLY DEFERRED, indicando el
modo de restriccin que se asume al iniciar la transaccin
En el ltimo caso, tambin es posible especificar cuando un modo puede ser cambiado
subsecuentemente usando el calificador [NOT] DEFERRABLE
Ejemplo
CHAR (5)
VARCHAR2
VARCHAR2
CHAR (3)
CHAR (5)
NOT NULL ,
(100) NOT NULL ,
(50) ,
NOT NULL ,
NOT NULL
) ;
) ;
Departamento
CHAR (5) NOT NULL ,
VARCHAR2 (100) NOT NULL ,
VARCHAR2 (50) ,
CHAR (11)
) ;
ALTER TABLE Departamento ADD CONSTRAINT Departamento_PK
PRIMARY KEY ( codigo ) ;
) ;
ALTER TABLE docencia ADD CONSTRAINT docencia_PK PRIMARY KEY (
Asignatura_codigo, Profesor_codigo, Profesor_Departamento_codigo ) ;
USER_TAB_PRIVS: Permisos sobre objetos con el usuario involucrado. Si pone _COL_en vez de _TAB_se refiere a las columnas. Se puede distinguir entre:
USER_TAB_PRIVS_MADE: Permisos sobre los objetos del usuario.
USER_TAB_PRIVS_RECD: Permisos recibidos por el usuario.
Restricciones en Oracle
Las almacena todas en la vista del Diccionario de Datos:
USER_CONSTRAINTS
CONSTRAINT_NAME: Nombre de la restriccin. Si no se le ha dado uno, Oracle le asigna uno con un
cdigo.
TABLE_NAME: Nombre de la tabla con dicha restriccin.
CONSTRAINT_TYPE: Es un carcter
P: PRIMARY KEY
U: UNIQUE
R:restriccin de INTEGRIDAD REFERENCIAL
C: restriccin de tipo CHECK (o NOT NULL) con la condicin almacenada en el atributo SEARCH_CONDITION
STATUS: Estado de la restriccin (ENABLE o DISABLE).
USER_CONS_COLUMNS
GRANT: Otorga roles y permisos (o privilegios) del sistema o de objetos a usuarios. Los privilegios se retiran con el
comando REVOKE.
ANALYZE: Almacena o borra en el Diccionario de Datos estadsticas sobre el objeto que se especifique. Por ejemplo, para
una tabla el resultado se almacenar en USER_TABLES.
AUDIT: Realiza un seguimiento sobre las operaciones ejecutadas o sobre objetos accedidos (usuario, tipo de operacin,
objeto implicado, fecha y hora). Para detener la auditoria usar NOAUDIT. Los datos se guardan en tablas del diccionario
con el texto AUDIT_en su nombre, como DBA_AUDIT_OBJECT, DBA_AUDIT_TRAIL...
Vista
Se considera una relacin virtual resultado de la ejecucin de operaciones sobre una o ms
relaciones base.
No existe en la base de datos, sino que es producida al tiempo de la peticin.
Forma general
CREATE VIEW nombre_vista[(nombre_columna [, . . .])]
AS subconsulta
[WITH CHECK OPTION]
Si se especifica la lista de columnas, debe coincidir con las columnas devueltas por la
subconsulta. Si se omite, los nombres de las columnas toman los nombres devueltos por la
subconsulta.
En consultas, se trata la vista como una relacin base.
Definicin de Vista
La lista de columnas se debe especificar si existe ambigedad en los nombres de columnas
La subconsulta se conoce como la consulta de definicin de la vista
La opcin WITH CHECK OPTION asegura que si un rengln falla en satisfacer la clusula WHERE de la
consulta de definicin, esta no es agregada a la tabla base en casos de inserciones y actualizaciones
mediante la vista.
Eliminacin de vistas:
DROP VIEW nombre_vista
[RESTRICT | CASCADE]
Con CASCADE se eliminan todos los objetos dependientes relacionados (vistas definidas en la vista)
Con RESTRICT, si hay objetos que dependen de la existencia de la vista, se rechaza la eliminacin.
Crear una vista proyecto-empleado que proporcione, para cada proyecto en cada
ciudad, el nmero de empleados que trabajan en el proyecto y la duracin total de
empleo.
CREATE VIEW proyecto-empleado (Nombre, Ciudad, Numero, Total)
AS SELECT
NombProy, Ciudad, COUNT(NoEmp), SUM(Dur)
FROM
Proyecto P, Trabaja T
WHERE
P.NoProy = W.NoProy
GROUP BY Ciudad, NombProy
Actualizacin de vistas
Una vista definida sobre una sola tabla es actualizable si los atributos de la vista contienen la
llave primaria o algn otro atributo como llave candidata (sin nulos)
Las vistas definidas sobre mltiples tablas usando reuniones generalmente no son
actualizables
Las vistas definidas usando funciones agregadas no son actualizables
Si una columna en una vista esta basada en una funcin de agregacin:
La columna debe aparecer solo en las clusulas SELECT y ORDER BY de las consultas que acceden a la
vista
La columna no debe ser usada en la clusula WHERE ni ser argumento de una funcin agregada en
cualquier consulta basada en la vista
Una vista agrupada nunca debe ser reunida con una tabla base o con una vista.
Disparadores (triggers)
Un disparador es un procedimiento que es invocado automticamente por el SABD en respuesta a
cambios en la base de datos.
La condicin
Una prueba o una consulta que necesita ser verificada cuando un disparador es activado
Para las consultas, la condicin es verdad (TRUE) si las consulta regresa cualquier resultado
La Accin
El procedimiento que es ejecutado cuando el disparador es activado y la condicin es verdadera
Puede ser antes o despus de la activacin del disparador
Hace referencia al valor anterior y al nuevo valor de la tupla, limitado a uno o ms atributos
Una vez por cada tupla modificada o para todos los cambios
Disparadores (triggers)
Forma general:
definicin_disparador ::=
{CREATE | REPLACE} TRIGGER nom_disparador
{BEFORE |AFTER |INSTEAD OF} evento1 [OR evento2 [OR ]]
ON {nom_relacin | nom_vista}
[REFERENCING OLD AS nom_referencia [NEW AS nom_referencia]]
[FOR EACH ROW [WHEN (condicin)]]
bloque PL/SQL
evento ::= INSERT |DELETE |UPDATE [OF nom_atributo1, nom_atributo2, ]
Un disparador no puede ser llamado directamente; slo se activa por eventos en la base de datos
En el bloque PL/SQL no pueden incluirse sentencias de definicin de datos ni de control de transacciones (COMMIT, ROLLBACK, SAVEPOINT)
Si el disparador puede ser activado por ms de un tipo de evento, en el bloque PL/SQL se pueden usar los predicados lgicos INSERTING,
DELETING y UPDATING [nom_atributo] para programar distintas acciones en funcin del tipo de evento que ha activado el disparador
CREATE OR REPLACE TRIGGER ejemplo
BEFORE INSERT OR UPDATE OR DELETE ON tabla BEGIN
IF DELETING THEN
Acciones asociadas al borrado
ELSIF INSERTING THEN
Acciones asociadas a la insercin
ELSE
Acciones asociadas a la modificacin
END IF;
END ejemplo
Tablas mutantes
Una tabla mutante es una tabla que est siendo modificada por una operacin DELETE, INSERT o UPDATE, o una
tabla que se ver afectada por los efectos de un DELETE CASCADE debido a la integridad referencial. Las tablas
mutantes slo deben aparecen en disparadores con nivel de fila. Una tabla sobre la que se define un disparador
es una tabla mutante.
CREATE OR REPLACE TRIGGER chequear_salario
BEFORE INSERT OR UPDATE ON empleado
FOR EACH ROW
WHEN (new.trabajo<>presidente)
DECLARE
v_salariomin empleado.salario%TYPE;
v_salariomax empleado.salario%TYPE;
BEGIN
SELECT MAX(salario), MIN(salario) FROM empleado INTO v_salariomin, v_salariomax
FROM empleado WHERE trabajo=:new.trabajo;
IF :new.salario < v_salariomin OR :new.salario > v_salariomax THEN
RAISE_APPLICATION_ERROR(-20001, Sueldo fuera de rango);
END IF;
END chequear_salario;
/
Al ejecutar la orden
Dar un error de tabla mutante ya que el disparador est intentando obtener informacin de la tabla sobre la que
est definido (tabla empleado) y que, por lo tanto, es mutante.
Tabla de restriccin
Una tabla de restriccin es la que el disparador puede tener necesidad de leer debido a una restriccin de integridad referencial.
Supongamos dos tablas, empleado y departamento, de forma que en la tabla empleado tenemos almacenado el nmero de
departamento, definido como clave ajena que referencia a la tabla departamento.
CREATE TRIGGER ejemplo
AFTER UPDATE ON nrodep OF departamento
FOR EACH ROW
BEGIN
UPDATE empleado
SET empleado.dep = :NEW.nrodep WHERE empleado.dep= :OLD.nrodep;
END ejemplo;
/
Al ejecutar:
UPDATE departamento
SET nrodep= 1 WHERE nrodep=7;
Dar un error de tabla mutante ya que estamos intentando modificar una columna correspondiente a una restriccin de
integridad.
Sin embargo, se puede crear un disparador de sustitucin que efecte el borrado equivalente pero
sobre la tabla habitaciones.
CREATE TRIGGER borra_en_vista
INSTEAD OF DELETE ON vista
FOR EACH ROW
BEGIN
DELETE FROM habitaciones
WHERE edificio = :OLD.edificio;
END borra_en_vista;
Manejo de disparadores
Adems de la sentencia de creacin (definicin) de disparadores, el DDL de ORACLE proporciona las siguientes sentencias para la gestin de
los mismos:
DROP TRIGGER nom_disparador: elimina un disparador.
REPLACE TRIGGER nom_disparador: modifica su definicin.
ALTER TRIGGER nom_disparador COMPILE: recompila el disparador.
ALTER TRIGGER nom_disparador [ENABLE | DISABLE]
ALTER TABLE nom_relacin [{ENABLE | DISABLE} ALL TRIGGERS]: habilitan o deshabilitan el disparo de los disparadores.
Las tablas del diccionario del sistema: USER_TRIGGERS, ALL_TRIGGERS, DBA_TRIGGERS permiten consultar los disparadores que hay definidos.
Ver todos los disparadores definidos por un usuario
SELECT TRIGGER_NAME FROM USER_TRIGGERS
Seguridad
Proteccin de intentos maliciosos de robar o modificar datos.
A nivel de base de datos
Mecanismos de autentificacin y autorizacin para permitir, slo a usuarios especficos, requerir
datos.
36
Seguridad
A nivel fsico
Acceso fsico a computadoras; destruccin de datos por intrusos. Es necesario usar
mtodos de resguardo por llaves.
Tambin es necesario proteger a las computadoras de inundaciones, incendios, etc.
A nivel humano
Los usuarios pueden ser grabados para asegurar que usuarios autorizados no den
acceso a intrusos.
Los usuarios deben de ser entrenados en la seleccin y privacidad de la contrasea.
37
38
39
40
41
Autorizacin
La autorizacin forma parte de la base de datos.
Autorizacin de lectura.- permite la lectura, pero no la modificacin de
los datos.
Autorizacin de insercin.- permite la insercin de nuevos datos, pero
no la modificacin de los existentes.
Autorizacin de actualizacin.- permite la modificacin, pero no la
eliminacin de datos.
Autorizacin de eliminacin.- permite la eliminacin de datos
43
Autorizacin
Formas de autorizacin para modificar el esquema de la bases de datos:
Autorizacin de ndice.- permite la creacin y eliminacin de ndices.
Autorizacin de recursos.- permite la creacin de nuevas relaciones.
Autorizacin de alteracin.- permite la adicin o eliminacin de
atributos en una relacin.
Autorizacin de eliminacin.- permite la eliminacin de relaciones.
44
Autorizacin y vistas
Los usuarios pueden ceder autorizacin en vistas, sin que sea dada la
autorizacin sobre las relaciones usadas en la definicin de la vista.
La habilidad de las vistas para esconder datos sirve para simplificar el uso
del sistema y para mejorar la seguridad permitiendo a los usuarios
acceder slo a los datos que necesitan para su trabajo.
Una combinacin de seguridad a nivel de relaciones y a nivel de vistas
puede usarse para limitar el acceso a los usuarios precisamente en los
datos que necesita.
45
Control de acceso
Un identificador de autorizacin es el mtodo usado por un SABD para
establecer una identidad del usuario. Usualmente tiene asociada una
contrasea
Es utilizado para determinar cuales objetos pueden ser referenciados por
el usuario y que operaciones pueden ser ejecutadas sobre esos objetos
Cada objeto creado mediante sentencias SQL tiene un propietario, como
se especifica en la clusula AUTORIZATION del esquema al cual pertenece
el objeto
El propietario es la nica persona que tiene conocimiento de esto
Conceder privilegios
Un propietario de una tabla puede ceder los privilegios a otro usuario mediante la
clausula GRANT
Forma general:
GRANT {lista_privilegios | ALL PRIVILEGES}
ON
nombre_objeto
TO {lista_id_aut | PUBLIC}
[WITH GRANT OPTION]
Privilegios
Las acciones que puede permitir un usuario hacia una tabla base o una vista son:
Select: permite el acceso de lectura a la relacin, o la capacidad de consultar usando una vista
grant select on branch to user1, user2, user3
Revocacin de privilegios
Para revocar los privilegios cedidos a un usuario mediante GRANT, se usa la clusula
REVOKE
Forma general:
REVOKE [GRANT OPTION FOR] {lista_privilegios | ALL PRIVILEGES}
ON
nombre_objeto
ALL PRIVILEGES se refiere a todos los privilegios cedidos a un usuario por el usuario
que cedi los privilegios
GRANT OPTION FOR habilita el paso de los privilegios mediante WITH GRANT OPTION
del GRANT para ser revocados separadamente de los privilegios por s mismos
REVOKE falla si resulta en un objeto abandonado, como una vista, a menos que sea
especificado CASCADE
Los privilegios otorgados hacia un usuario por otro usuario no son afectados
Roles
Un rol permite agrupar privilegios comunes para una clase de
usuarios.
53
Auditora
Una auditora es una bitcora de todos los cambios
(insert/delete/update) a la base de datos junto con la informacin de qu
usuario realiz el cambio, y cuando el cambio fu realizado.
Usado para llevar el control de actualizaciones errneas o fraudulentas.
54
Encriptacin
Los datos pueden ser encriptados cuando las previsiones de autorizacin
de la base de datos no ofrecen suficiente proteccin.
Las propiedades de una buena tcnica de encriptacin son:
Ser relativamente simple para usuarios autorizados a encriptar y desencriptar datos
El esquema de encriptacin no depende de lo secreto del algoritmo sino del
secreto como un parmetro del algoritmo, llamada llave de encriptacin.
Extremadamente difcil para un intruso determinar la llave de encriptacin.
55
Encriptacin
Data Encryption Standard (DES).- substituye caracteres y los reordena en base a una llave de encriptacin, la cual
es proporcionada a usuarios autorizados va un mecanismo seguro. Lo importante es el mecanismo de
transmisin de la llave, ya que esta es compartida.
Advanced Encryption Standard (AES).- reemplaza al DES, y esta basado en el algoritmo de Rijndael, aunque sigue
siendo dependiente de llaves secretas compartidas.
La encriptacin de llave pblica esta basada en que cada usuario tenga dos llaves:
Llave publica.- es la llave publica publicada usada para encriptar los datos, pero no puede ser usada para desencriptarlos.
Llave privada.- es la llave solamente conocida por un individuo, y es usada para desencriptar los datos. No es necesario
transmitirla al sitio que hace la encriptacin.
Este esquema hace imposible o extremadamente difcil desencriptar datos dada solo la llave publica.
El esquema de encriptacin RSA de llave publica esta basado en la dificultad de factorizar un numero muy largo
(cientos de dgitos) en sus componentes primos.
56
Autentificacin
La autentificacin basada en contrasea es ampliamente usada, pero es susceptible al rastreo (sniffing)
en un ambiente de red
57
Certificados digitales
Son usados para verificar la autenticidad de las llaves publicas
Problema: cuando existe una comunicacin con el sitio Web, como saber si se esta comunicando con
un sitio genuino o con un impostor?
Solucin: usar la llave publica del sitio Web
Problema: como verificar si la llave publica en si misma es genuina?
Solucin:
Cada cliente (navegador) tiene llaves publicas de una autoridad certificadora.
Un sitio puede obtener su nombre o URL y la llave publica firmada por una autoridad certificadora; dicho
documento es llamado el certificado.
Un cliente puede usar la llave publica de la autoridad certificadora para verificar el certificado
Existen varios niveles de autoridades certificadoras. Cada una de ellas:
Presenta su propio certificado de llave publica firmado por una autoridad de ms alto nivel, y
Usa su llave privada para firmar el certificado de otra autoridad o sitio Web.
58
Transacciones
Una transaccin es una unidad lgica de trabajo con una o ms sentencias SQL,
garantizando que sean atmicas con respecto a su recuperacin
Una transaccin en SQL comienza automticamente con una sentencia SQL (ej.
SELECT, INSERT, etc). Los cambios hechos por la transaccin no son visibles a otra
transaccin ejecutando concurrentemente hasta que la transaccin termina
Una transaccin puede ser completada en una de cuatro formas:
Niveles de serializacin en el
SQL92
El estndar SQL no asume que cada transaccin ejecute en una forma
serializable, y los sistemas comerciales le permiten al usuario especificar el
grado de control de concurrencia que desean.
En el SQL2, el mximo nivel de aislamiento es serializable, que significa que una
transaccin ejecutar en un instante y las otras transacciones ejecutarn hasta que
se haya completado completamente antes o despus.
Soporte de transacciones en el
SQL92
Cada transaccin tiene un modo de acceso, un tamao del rea de
diagnsticos y un nivel de aislamiento.
Nivel de
aislamiento
Lectura sucia
(dirty read)
Lectura no
repetible
(nonrepeatable
read)
Registros
fantasmas
(phantom problem)
Read Uncommited
Pueden existir
Puede existir
Puede existir
Read commited
No
Puede existir
Puede existir
Repeteable reads
No
No
Puede existir
Serializable
No
No
No
Transacciones
Una nueva transaccin comienza con la siguiente sentencia que
involucre una transaccin