USE AdventureWorks;
GO
SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO
El operador UNION | |
El operador UNION sirve para obtener a partir de La sintaxis es la siguiente:
| |
Consulta puede ser un nombre de tabla, un Después de la primera consulta viene la palabra Las dos Las Por Si queremos que aparezcan todas las filas incluso El empleo Se puede También podemos indicar que
| |
Para ilustrar la operación, vamos a obtener los
|
SELECT idfab,idproductoFROM
| o bien | TABLE [existencias cero]UNION ALLTABLE | ||||
Se ha incluido la cláusula ALL porque no Se ha incluido ORDER BY para que el resultado Para el 2º caso hemos creado una consulta llamada |
El INNER JOIN | |
El INNER JOIN es otro tipo de composición La sintaxis es la siguiente: | |
Ejemplo: SELECT *FROM pedidos INNER JOIN clientes tabla1 y tabla2 son Pueden ser las dos la misma tabla, en este caso col1, Observar que dentro de la cláusula ON los Las columnas de comp representa cualquier operador Se pueden definir varias condiciones Se pueden combinar más de SELECT *FROM (pedidos INNER JOIN En vez de tabla1 hemos escrito un SELECT *FROM clientes INNER JOIN | |
CREATE TABLE | |
La sentencia CREATE TABLE sirve para La sintaxis es la siguiente: |
|
nbtabla: nombre de la tabla que estamos definiendo nbcol: nombre de la columna que estamos definiendo tipo: tipo de dato de la columna, todos los datos Una restricción consiste en la restricción1: una restricción de tipo restricción2: una restricción de tipo Para escribir una sentencia CREATE TABLE se | |
Una | |
La cláusula NOT NULL indica que la La cláusula CONSTRAINT sirve para definir Como restricciones tenemos la de clave primaria (clave La cláusula PRIMARY KEY se utiliza para En una tabla no pueden haber varias claves La cláusula UNIQUE sirve para definir un La cláusula NOT NULL indica que la columna La última restricción que podemos definir | |
Ejemplo: CREATE TABLE tab1 (col1 INTEGER CONSTRAINT pk PRIMARY Con este ejemplo estamos creando la tabla |
Trigger (base de datos)
Un trigger o un
disparador en una Base de datos es un evento que se ejecuta
cuando se cumple una condición establecida al realizar una
operación de inserción (INSERT),
actualización (UPDATE) o borrado (DELETE).
Son usados para mejorar la administración de la Base de datos, sin
necesidad de contar con el usuario que ejecute la sentencia de
SQL.
Además, pueden generar valores de columnas, previene
errores de datos, sincroniza tablas, modifica valores de una
vista, etc.
Permite implementar programas basados
en paradigma
lógico (sistemas
expertos, deducción).
La estructura básica de un trigger es:
Llamada de activación: es la sentencia que
permite "disparar" el código a ejecutar.
Restricción: es la condición necesaria
para realizar el código. Esta restricción puede ser
de tipo condicional o de tipo nulidad.
Acción a ejecutar: es la secuencia de
instrucciones a ejecutar una vez que se han cumplido las
condiciones iniciales.
Existen dos tipos de triggers, que se clasifican según
la cantidad de ejecuciones a realizar:
Row Triggers (o Triggers de fila): son aquellos que se
ejecutaran n-veces si se llama n-veces desde la tabla asociada al
trigger
Statement Triggers (o Triggers de secuencia): son
áquellos que sin importar la cantidad de veces que se
cumpla con la condición, su ejecución es
única.
Pueden ser de sesión y almacenados
Un sencillo ejemplo sería crear un trigger para
insertar un pedido de algún producto cuando la cantidad de
éste en nuestro almacén
sea inferior a un valor dado.
BEFORE UPDATE ON tabla_almacen
FOR ALL records
IF: NEW.producto < 100 THEN
INSERT INTO tabla_pedidos(producto) VALUES
('1000');
END IF;
END;
PROTECCION
Los datos guardados en una base de datos deben estar
protegidos contra los accesos no autorizados y ante
destrucción y/o alteración malintencionadas
Accesos No Autorizados
Lectura no autorizada de datos
Modificación no autorizada de datos
Destrucción no autorizada de datos
SEGURIDAD
La Seguridad de las Bases de Datos se refiere a la
protección frente a accesos malintencionados
La protección absoluta no es posible La idea que
habitualmente se emplea es elevar el coste para quién lo
realiza ?? Medida disuasoria en la mayor parte de los casos
Privilegios
Por razones de seguridad, los
sistemas SQL2 permiten obtener muchas clases de privilegios sobre
los elementos de la base de datos; Entre ellos se encuentran: el
derecho de seleccionar (leer), insertar, eliminar o actualizar
relaciones y el derecho de referenciar relaciones (referirse a
ellas en una restricción); Los privilegios de insertar,
actualizar y referenciar también pueden conseguirse en
determinadas columnas de una relación
NIVELES DE SEGURIDAD
Sistema de Bases de Datos: Algunos usuarios del sistema
de base de datos sólo estén autorizados a tener
acceso a una parte limitada de la base de datos (es responsabilidad del sistema de bases de datos
asegurarse de que no se violan las restricciones de
autorización)
Sistema Operativo: La debilidad de la seguridad del
sistema operativo
puede servir de medio para el acceso no autorizado a la base de
datos [contraseñas de acceso, aislamiento de procesos,…]
Red: Dado que casi todos los sistemas de bases de datos
permiten el acceso remoto mediante redes, la seguridad en el
nivel del software de red, tanto en Internet como en las redes
privadas, es muy importante [encriptación,…]
Física: Los sitios que contienen los sistemas
informáticos deben estar protegidos físicamente
contra la entrada de intrusos [seguridad física]
Humanos: Los usuarios deben ser autorizados
cuidadosamente para reducir la posibilidad de que alguno de ellos
dé acceso a intrusos a cambios de favores […]
AUTORIZACIONES
Los usuarios pueden tener varios tipos de privilegios o
autorización de acceso para diferentes usos de la base
de datos:
??Autorización de Lectura
(SELECT): permite la lectura de
datos pero no la modificación de datos existentes
??Autorización de Inserción (INSERT):
permite la inserción de nuevos datos pero no la
modificación de datos existentes
??Autorización de Actualización (UPDATE):
permite la modificación de datos pero no su borrado
??Autorización de Borrado (DELETE): Permite el
borrado de datos
Los usuarios pueden tener varios tipos de privilegios o
autorización de modificación de esquema de la
base de datos:
?? Autorización de Índices: permite la
creación y borrado de índices
?? Autorización de Recursos: permite la
creación de nuevas relaciones
?? Autorización de Alteración: permite el
añadido y borrado de atributos de una relación
?? Autorización de Eliminación: Permite
el borrado de relaciones
SOBRE AUTORIZACIONES
Las autorizaciones de eliminación y borrado se
diferencian en que la autorización de borrado elimina
sólo las tuplas mientras que la autorización de
eliminación elimina la relación.
El usuario con autorización de recursos, y por
tanto con la capacidad de crear nuevas relaciones, recibe
automáticamente todos los privilegios sobre ella
La autorización de índices permite
regular los recursos (los
usuarios que realizan actualizaciones estarían tentados a
eliminar índices y los que realizan consultas a
crearlos)
La forma superior de privilegio o autoridad es
la concedida al administrador de la base de datos
AUTORIZACIONES Y VISTAS
Puede ocurrir que sea necesario autorizar a un usuario el
acceso parcial a una relación (ver unos atributos y otros
no) Esto se puede conseguir mediante una combinación de
seguridad en el nivel relacional y en el nivel de las
vistas
La creación de vistas no necesita la
autorización de recursos El usuario que crea una vista no
recibe necesariamente todos los privilegios sobre la misma
(sólo recibe los que no proporcionen autorizaciones
adicionales a las que ya posee)
AUTORIZACION EN SQL
La norma SQL incluye los privilegios SELECT
(autorización de lectura), INSERT
(autorización de inserción), UPDATE
(autorización de actualización) y DELETE
(autorización de borrado), para la definición de
autorizaciones
SQL incluye el privilegio REFERENCES para permitir a un
usuario o papel declarar claves externas al crear una
relación (para referenciar atributos)
CONCESION Y PREVILEGIOS EN SQL
La cláusula GRANT se usa para conceder o retirar
privilegios en SQL
GRANT lista_privilegios ON
nombre_relación TO lista_usuarios/papeles
GRANT SELECT ON sucursal TO A, B, C
GRANT UPDATE (importe) ON prestamo
TO A, B
GRANT REFERENCES (nombre_sucursal)
ON sucursal TO A
ALL PRIVILEGES concede todos los
privilegios,
PUBLIC hace referencia a todos los
usuarios
PRIVILEGIOS EN PAPELES EN SQL
SQL permite asociar privilegios a los papeles definidos con la
cláusula
CREATE ROLE
CREATE ROLE cajero
GRANT SELECT ON cuenta TO
cajero
GRANT cajero TO juan
CREATE ROLE gestor
GRANT cajero TO gestor
GRANT gestor TO maría
Privilegio Conceder Privilegios
Por defecto, un usuario o papel que recibe un privilegio no
está autorizado a concedérselo a otros usuarios y/o
papeles GRANT SELECT ON sucursal TO A WITH GRANT
OPTION
Diagramas Concesión Privilegios
Dada la intrincada red de concesiones de privilegios que
pueden surgir, se hace necesaria una representación
gráfica denominada diagrama de concesiones
Nodos: Usuario y Privilegio
Arcos: Concesiones de Privilegios
Diagrama de Concesiones
Los propietarios pueden otorgar privilegios a otros usuarios o
al usuario general PUBLIC; si los privilegios se otorgan con la
opción de concesión, entonces pueden ser
transmitidos a otros; Los privilegios también pueden
revocarse; El diagrama de
concesiones es un medio muy útil de recordar lo suficiente
sobre la historia de las concesiones
y revocaciones, a fin de llevar un control sobre los
privilegios dados a los usuarios y sobre su origen
Ejemplo Diagrama Privilegios
Privilegio Retirar Privilegios
Para retirar un privilegio se emplea la
cláusula REVOKE
REVOKE lista_privilegios ON
nombre_relación
FROM lista_usuarios/papeles
[RESTRICT|CASCADE]
REVOKE SELECT ON sucursal FROM A,
B, C
REVOKE UPDATE (importe) ON prestamo
FROM A, B
REVOKE REFERENCES (nombre_sucursal)
ON sucursal FROM A
REVOKE GRANT OPTION FOR SE
Privilegio Retirar Privilegios
Para retirar un privilegio se emplea la
cláusula REVOKE
REVOKE lista_privilegios ON
nombre_relación
FROM lista_usuarios/papeles
[RESTRICT|CASCADE]
REVOKE SELECT ON sucursal FROM A,
B, C
REVOKE UPDATE (importe) ON prestamo
FROM A, B
REVOKE REFERENCES (nombre_sucursal)
ON
sucursal FROM A
REVOKE GRANT OPTION FOR SELECT
ON sucursal FROM A
Conclusión
La finalidad de este trabajo, es
dar una inducción en el tema de Diseño
de Bases de Datos, a personas ajenas al tema. De manera que por
ello los temas se presentan de una manera sencilla y sin tanta
terminología.
Nos muestra la gran importancia que para cualquier entidad, ya
sea una empresa
grande o chica, para el gobierno, hasta
para la vida cotidiana de una persona tienen
las bases de datos.
Todo gira alrededor de ellas, todos los procesos del mundo
están registrados en ellas, de ahí la importancia
de llevar a cabo un diseño eficiente y libre de errores de
las mismas.
Siempre que una persona escucha hablar de bases de datos y de
toda la terminología que las acompaña piensa que es
un tema excesivamente complicado, y no es así, todo tiene
un porque y lógica,
es cosa de familiarizarse un poco con ellas (bases de datos).
Cuando se ven en realidad todas las ventajas que tienen, es
mas sencillo el proceso de
aprendizaje,
ya que siente que el aprender a manejarlas se vera
recompensado.
Además de los sencillas que son, es muy fácil
acceder a información, manuales y cursos
relacionados a ellas, todo esta a la mano, con la facilidad de
poner este tema en un buscador de la red y aparecerán
infinidad de temas, unos mas complejos que otros, pero siempre
uno que se adecue a las capacidades de aprendizaje de cada
persona.
Otro punto muy importante es que la
mayoría son gratis.
Bibliografía
1. MANUAL DE
BASE DE DATOS BASICOS ING. MANUEL CHANG ESCUELA
SUPERIOR POLITECNICA DEL LITORAL (ESPOL)2. MANUAL DEL PROGRAMADOR CON EL USO DE
BASES DE DATOS ING. ALFREDO ALVAREZ. ESCUELA SUPERIOR
POLITECNICA DEL LITORAL. ESCUELA DE SISTEMAS.3. BASES DE DATOS RELACIONALES,
EDICIONES MG GRILL. ING. JORGE SOTOMAYOR PEREZ.4. DISEÑO DE BASES DE DATOS.
EDICIONES MULTILIBROS.5.
6. WWW.LAWEBDELPROGRAMADOR.COM
9. WWW.MONOGRAFIAS.COM
10. MANUAL BASES DE DATOS, TABLAS,
FORMULARIOS,
CONSULTAS TNLG. GERARDO LOOR LINDAO, ACADEMIA NAVAL ALMIRANTE
ILLINGWORTH11. JERARQUIA DE LAS BASES DE DATOS,
ING. MILTON ORELLANA, ACADEMIA NAVAL ALMIRANTE
ILLINGWORTH12. CURSO SOBRE BASES DE DATOS.
AGRADECIMIENTO
QUIERO DEJAR EN CONSTANCIA DE MIS MAS SINCEROS AGRADECIMIENTOS
DE ORGULLO Y LEALTAD, ALA UNIVERSIDAD
AGRARIA DEL ECUADOR, A US
AUTORIDADES, PERSONAL DOCENTE,
ADMINISTRATIVO, QUIEN EN ESTOS TRES AÑOS DE LABORES SE HA
HECHO COMO UNA FAMILIA DENTRO DE
LA COMUNIDAD
EDUCATIVA.
ALAS INSTITUCIONES
PUBLICAS Y PRIVADAS DEL CANTON PALESTINA, EN CUYA OFICINAS SE
PERMITIERON ELABORAR LAS PASANTIAS, EMPRESARIALES, PREVIO A LA
OBTENCION DEL TITULO DE TECNOLOGO EN COMPUTACÓN E
INFORMATICA.
JAIRON CASTRO MACIAS
DEDICATORIA
QUIERO DEDICAR ESTE TRABAJO DE INVESTIGACION TIPO MONOGRAFICO,
PRIMERAMENTE A DIOS POR DARME LA CONFIANZA ESPIRITUAL E
INTELECTUAL PARA CUMPLIR CON EFICACIA LA META
PROPUESTA, EN SEGUNDO LUGAR A MI FAMILIA CUYO APOYO INCONDICIONAL
MORAL,
ECONOMICO HA SIDO FACTIBLE PARA PODER CULMINAR MIS ESTUDIOS
SUPERIORES.
JAIRON CASTRO MACIAS
Página anterior | Volver al principio del trabajo | Página siguiente |