Académique Documents
Professionnel Documents
Culture Documents
Mnima Redundancia: Los datos solo estn repetidos por justificadas razones.
o Soporte a transacciones
o Servicios de recuperacin
o Integridad de datos
Puede cambiar la definicin interna de los datos sin afectar los programas que
usan esos datos
Relaciones (vnculos)
Convencin: Aunque en rigor terico una relacin es una tabla, vamos a usar el
trmino relacin para referirnos a la asociacin de una o ms tablas.
Propiedad ACID
Modelo Relacional
Principales proveedores
IBM (DB2)
Etc.
Es posible realizar consultas sobre una vista como si fuera una tabla
base
Llaves (keys)
No permite nulos/duplicados
Una llave candidato es una llave que puede ser llave primaria
Para cada valor del atributo, se guarda las direcciones fsicas de todos los
bloques que contienen tuplas con ese valor.
Lo ms pequeo posible:
De esta forma, basta con leer los ndices y no es necesario volver a leer la
data
Indices clusterizados
1a.Forma Normal:
Una tabla est en primera forma normal si y solo si, en cada valor vlido de esa
tabla, toda tupla contiene exactamente un valor para cada atributo
Dependencia funcional:
Una tabla est en segunda forma normal si y solo si, est en primera forma
normal y todo atributo no llave es funcionalmente dependiente de la clave
primaria
En otras palabras, todos los atributos de una tupla en una tabla, quedan
absolutamente determinados por el valor de la llave primaria
3a.Forma Normal:
Una tabla est en Tercera Forma Normal si y solo si, est en Segunda Forma
Normal y todo atributo no llave es dependiente en forma no transitiva de la llave
primaria.
En otras palabras, todos los atributos de una tupla en una tabla, quedan
absolutamente determinados SOLO por el valor de la llave primaria, no hay otros
atributos de los cuales dependa.
Desnormalizacin:
Aplicaciones de Datawarehousing.
Despues de crear la Base de Datos en el DBMS con el DDL, el usuario accesa los
datos mediante el Lenguaje de Manipulacin de Datos (DML).
GRANT
REVOKE
Muchas veces al DCL se agregan commandos del tipo DTL (Data Transaction
Language)
COMMIT
SAVEPOINT
ROLLBACK
Etc.
SQL
En algunos casos las consultas SQL generan valores (filas) duplicadas. Por ejemplo,
obtenga todos los Titulos de los empleados.
Para eliminar los duplicados, SQL ofrece la clasula DISTINCT (select distinct title
from emp):
JOIN mediante SQL
Para realizar un join de tablas, basta con hacer la asociacin de las tablas en la
clusula WHERE igualando los atributos comunes.
Por ejemplo, obtenga cuanto ganar el empleado A.Lee por cada proyecto.
Asuma sueldos anuales.
Clausula Between
Condicin IN
Para expresar que el valor de un atributo puede ser alguno de los valores de una
lista, se debe utilizar la keyword IN.
Por ejemplo, Obtenga todos los empleados que estn en los departamentos
D1, D2,D3.
El null se utiliza para indicar que un determinado atributo no tiene un valor. Para
determinar si un atributo es nulo, se usa la clusula is null. (Note que no preguntar
si un valor es nulo con = o <>)
UNION en SQL
Suponga que requiere obtener todos los nombres de empleados que son
supervisados directamente por R.Davis o por M.Smith.
Keyword INTO
Este resultado temporal se puede utilizar para formar la operacin, en lugar de usar
parntesis.
Ordenaciones
Por default, el orden de la salida de una query no queda ordenada por ningn
atributo. Mediante la clusula ORDER BY se puede indicar la ordenacin.
COUNT, MAX y MIN se aplican sobre cualquier tipo de campos, mientras que
SUM y AVG se aplican solo sobre atributos numricos
Todas estas funciones ignoran el NULL value, excepto COUNT que cuenta el numero
de filas del atributo.
Clusula GROUP BY
Las funciones agregativas son muy prcticas cuando se combinan con la clusula
GROUP BY. Por ejemplo, obtenga la cantidad de empleados por cada titulos (title), su
salario mnimo, mximo y promedio.
Clusula HAVING
Se utiliza para dejar fuera los grupos que no coinciden con el criterio establecido en
la query.
Por ejemplo, obtenga el ttulo y la cantidad de empleados con ese ttulo, tal
que la cantidad de empleados con ese ttulo sean a lo menos dos.
Subqueries
SQL permite que una query tenga mltiples subqueries anidadas dentro de ella.
Esto facilita la construccin de queries ms complejas.
Por ejemplo:
Tipos de Subquery
Subquery de fila: retorna una fila nica que puede tener varias columnas.
Ejemplos de Subquery
Funcin EXISTS
La funcin EXISTS se utiliza para chequear si el resultado de una query anidada est
o no vaco.
Ejemplo: Obtenga todos los empleados que tienen el mismo nombre en la tabla
Empleados.
SQL permite utilizar las keywords ANY y ALL con los operadores de comparacin y
subqueries.
ANY significa que cualquier valor retornado por la subquery puede satisfacer la
condicin
ALL significa que todos los valores retornados por la subquery deben satisfacer
la condicin.
Ejemplo: obtenga todos los empleados que ganan ms que los empleados con titulo
ME.
Actualizaciones (updates) en base de datos
Nota: si omite la column list, los valores deben ser especificados en el orden en
que fueron creados en la tabla. Si omite cualquier valor de las columnas, stas
quedan con el valor NULL.
INSERT
El INSERT se puede usar para ingresar mltiples filas que son el resultado de una
instruccin SELECT
Ejemplo: crear una tabla que contenga el nombre del departamento, su codigo y
el numero de empleados que tiene cada departamento
UPDATE
DELETE
1. De Dominio
2. De Integridad de Entidad
3. De Integridad Referencial
Esta Regla establece que todo valor de un atributo debe ser un elemento del
dominio del atributo o nulo (null)
Esta regla se aplica solo a las llaves primarias, no se aplica a llaves alternas o
secundarias.
Regla de Integridad Referencial
Su definicin es: si existe una llave fornea en una tabla, entonces todo valor
del atributo debe coincidir con un valor en la tabla referenciada o ser null.
No se permite
No se permite
ON DELETE CASCADE
ON DELETE SET DEFAULT pone el valor de la clave fornea al valor por omisin
(DEFAULT) que se defini al momento de crear la tabla.
Si se especifica ON DELETE SET NULL, las filas en la tabla hijo son actualizadas
automticamente poniendo en las columnas de la clave fornea el valor NULL. Si se
especifica una accin SET NULL, debemos asegurarnos de no declarar las columnas
en la tabla como NOT NULL.
A continuacin se muestra un ejemplo de eliminacin en cascada:
Vamos a ver como estn nuestros registros antes de ejecutar la sentencia DELETE:
Una Vista (View) es el resultado dinmico de una query sobre las tablas base.
Para el usuario, la Vista aparece como una tabla ms y puede usarse en una
query como si fuera una tabla base (con algunas limitaciones lgicas).
Creacin de Vistas
Ejemplos de Vistas
Crear una Vista que solo muestre el numero del Empleado, Titulo y Nombre
Notas:
La opcion WITH CHECK OPTION se utiliza en las Vistas actualizables. Se usa para
prevenir actualizaciones que eliminaran filas de la Vista.
Estas opciones (y las Vistas en general) son muy tiles para mantener la
integridad de la Base de Datos.
Ventajas/Desventajas de las Vistas
Ventajas
Desventajas
Embedded SQL
Embedded SQL
execute aumentar_salary(10, 3)
Recuperacin (Recovery)
Las transacciones del tipo T3 tambin se iniciaron antes del tiempo tc pero no
haban terminado en el tiempo tf.
Cuando llegue al fin del log, las listas DESHACER y REHACER identifican las
transacciones del tipo T3 y T5 respectivamente.
Ahora el sistema trabaja hacia atrs en el log deshaciendo las transacciones que
estn en la lista DESHACER y luego vuelve hacia adelante volviendo a hacer las
transacciones que estn en la lista REHACER.
Anlisis inconsistente
- Seguridad DBMS
- Ejemplo genrico:
AUTHORITY AV3
ON P
- P: Tabla
Los Privilegios dan a los usuarios el derecho de realizar operaciones sobre los
objetos de la base de datos (MySQL). El set de privilegios son:
Notas:
Cuando un usuario crea una tabla, se convierte en el dueo y tiene todos los
privilegios sobre la tabla
Comando GRANT
ON ObjectName
SELECT
DELETE
INSERT
UPDATE
REFERENCES
USAGE
La opcin WITH GRANT OPTION permite a los usuarios dar privilegios a otros
usuarios. Un usuario puede solo dar privilegios que l tiene.
ON ObjectName
Notas:
Ejemplo:
Esto provoca que todos los privilegios sean removidos para el usuario C
tambin, excepto el SELECT que fue dado por el usuario E.
Terminologa:
Ejemplo:
Algoritmo:
0512091520
Fundamentos:
d * e = 1 modulo (p-1)*(q-1)
C = 1311 modulo 15
= 1.792.160.394.037 modulo 15
=7
P = 73 modulo 15
= 343 modulo 15
= 13
Nota: como d y e son inversos entre s, se exige que los mensajes encriptados
(cifrados) sean firmados (firma digital)
Tipos de Encriptacin
Simtrica
Asimtrica
Utiliza una llave pblica y una llave privada para encriptar/desncriptar los
mensajes
ltimas tendencias en seguridad de Aplicaciones
Fundamento emprico
Capa de Presentacin
Capa de Negocio
Capa de Datos