Sie sind auf Seite 1von 20

INSTITUTO TECNOLGICO SUPERIOR DE FELIPE

CARRILLO PUERTO
UNIDAD ACADMICA TULUM

INGENIERA EN SISTEMAS COMPUTACIONALES

UNIDAD 4
TALLER DE BASES DE DATOS

ALUMNO: RAL JESS ALEJANDRO LPEZ


DOCENTE. ING. JOS TORRES EK

INVESTIGACIN 4.4 ROLES Y 4.5 VISTAS

Ral Jess Alejandro Lpez

06-NOVIEMBRE-2015

NDICE
INTRODUCCIN................................................................................................... 3
4.4. ROLES.......................................................................................................... 4
4.5. VISTAS.......................................................................................................... 6
CONCLUSIN..................................................................................................... 13
REFERENCIAS BIBLIOGRFICAS.........................................................................14

Ral Jess Alejandro Lpez

Ral Jess Alejandro Lpez

INTRODUCCIN
Anteriormente trabajamos con la implementacin de los privilegios con los que
puede o no contar un usuario dentro del a base. Continuando con la unida de taller
de base de datos, abordaremos los temas llamados roles y vistas, como en otras
investigaciones hablaremos de que significan, cuales es su utilidad y veremos las
sintaxis que estn determinadas para hacer cumplir estas sentencias dentro del
sistema de la base. A continuacin se presenta la informacin recaba de diferentes
fuentes bibliogrficas.

Ral Jess Alejandro Lpez

4.4. ROLES
Un rol es una coleccin de privilegios del sistema y de objetos que se otorgan a
usuarios y a otras tareas. Oracle dispone de muchos roles predeterminados
mientras que MySQL no los soporta.
El rol CONNECECT permite al usuario conectarse a la base de datos, crear tablas,
vistas, secuencias, sinnimos y otros objetos en el esquema asociado.
El rol RESOURCE permite al usuario utilizar los recursos tpicos para la
programacin de aplicaciones (clusters, disparadores, paquetes, funciones, etc.)
El rol DBA, tpico de los administradores, permite al usuario realizar cualquier
funcin de base de datos y disponer de cualquier privilegio
La sentencia que permite crear roles es CREATE ROL. Su sintaxis es la siguiente
Ral Jess Alejandro Lpez

?
1

CREATE ROLE rol

[ NOT IDENTIFIED

| IDENTIFIED {BY password | USING [usuario.] paquete

| EXTERNALLY | GLOBALLY} ];

NOT IDENTIFIED indica que no se requiere contrasea para utilizar el


rol, INDENTIFIED

BY password

indica

que

se

requiere

la

contrase;a

especificada.EXTERNALLY crea un rol de usuario externo y GLOBALLY crea un


rol de usuario global.
Ejemplo: Crear un rol y asignarle privilegios
?
1

CREATE ROLE miPrimerRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON tabla

TO miPrimerRole;

Ejemplo: Crear un rol y asignarle todos los privilegios


?
1

CREATE ROLE miPrimerRole;

Ral Jess Alejandro Lpez

GRANT ALL ON tabla TO miPrimerROLE;

Ejemplo: Asignar un rol a un usuario


?
1

GRANT miPrimerRole TO miUsuario;

Ejemplo: Eliminar un rol


?
1

DROP ROLE miPrimerRole;

Ral Jess Alejandro Lpez

4.5. VISTAS
Una vista es una tabla virtual cuyo contenido est definido por una consulta. Una
vista es sencillamente un objeto de base de datos que presenta datos de tablas.
Se trata de una consulta SQL que est permanentemente almacenada en la Base
de datos y a la que se le asigna un nombre, de modo que los resultados de la
consulta almacenada son visibles a travs de la vista, y SQL permite acceder a
estos resultados como si fueran de hecho una tabla real en la base de datos.
Las tablas y las vistas comparten el mismo espacio de nombres en la base de
datos, por lo tanto, una base de datos no puede contener una tabla y una vista con
el mismo nombre.
Las vistas suelen utilizarse para centrar, simplificar y personalizar la percepcin de
la base de datos para cada usuario. Las vistas pueden emplearse como
mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos
Ral Jess Alejandro Lpez

por medio de la vista, pero no les conceden el permiso de obtener acceso directo
a las tablas subyacentes de la vista. Las vistas se pueden utilizar para realizar
particiones de datos y para mejorar el rendimiento cuando se copian, se importan
y se exportan datos.
Mediante vistas es posible presentar datos de distintos servidores. Por ejemplo,
para combinar datos de distintos servidores remotos o en un servidor de mltiples
procesadores, cada uno de los cuales almacenan datos para una regin distinta
de su organizacin, puede crear consultas distribuidas o paralelas aumentando la
eficiencia de las consultas.
Mediante

diversas

clusulas

es

factible crear, modificador, eliminar y administrar vistas. La sintaxis bsica para


estas clusulas es genrica entre diversos gestores de base de datos. Sin
embargo en lo particular cada gestor implementa la administracin de estas de
forma diferente. En este documento se presenta la sintaxis particular de Oracle
10g, comparando en forma genrica con MySQL 5.
La sintaxis bsica de una vista (Oracle y MySQL) es:
?
1

CREATE VIEW nombre_vista AS consulta;

Ral Jess Alejandro Lpez

Sintaxis CREATE VIEW

?
1

CREATE [OR REPLACE]

VIEW nombre_vista AS sentencia_select

[WITH [CASCADED | LOCAL] CHECK OPTION]

WITH READ ONLY

?
1

CREATE [OR REPLACE]

[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW nombre_vista [(columnas)]

AS sentencia_select

[WITH [CASCADED | LOCAL] CHECK OPTION]

Ejemplo: Pases del continente Americano


Ral Jess Alejandro Lpez

?
1

CREATE OR REPLACE VIEW america AS

SELECT P.nombre, P.capital

FROM continente C, pais P

WHERE (C.nombreContinente = 'Amrica')

AND (C.idContinente = P.idContinente)

Ejemplo: En el futbol se conoce como Caballo de Hierro a los deportistas que


jugaron los 90 minutos en todos los partidos de un campeonato. Y Considerando
que en el torneo de Apertura 2011 se disputaron 17 fechas en la fase regular. La
vista que define a estos futbolistas es la siguiente.
?
1

CREATE OR REPLACE VIEW caballoDeHierro AS

SELECT E.nombreEquipo, J.nombre

FROM equipo E, jugadores J

WHERE E.idEquipo = J.idEquipo

AND J.JC = 17

Ral Jess Alejandro Lpez

ORDER BY E.nombreEquipo, J.nombre;

Ahora solo tenemos que hacer una consulta para obtener la vista correspondiente.
?
1

SELECT * FROM caballoDeHierro;

Ejemplo. El cual modificara la vista caballo de hierro con los jugadores que
recibieron 3 amonestaciones o menos.
?
1

CREATE OR REPLACE VIEW caballoDeHierro AS

SELECT P.nombrePosicion, E.nombreEquipo equipo,

3
4
5
6
7
8

J.nombre, J.JJ, J.TA


FROM equipo E, jugador J, posicion P
WHERE E.idEquipo = J.idEquipo
AND P.idPosicion = J.idPosicion
AND J.JC = 17 AND (J.ta <= 3 )
ORDER BY E.nombreEquipo, J.nombre;
SELECT * FROM caballoDeHierro;

Ral Jess Alejandro Lpez

Actualizacin de vistas
Algunas

vistas

pueden

actualizarse

mediante

sentencias INSERT,

DELETE o UPDATE sobre ellas, considerando las siguientes reglas:


No se debe especificar DISTINCT para que las filas duplicadas no se eliminen de
los resultados de las consultas.
La clusula FROM debe especificar slo una tabla actualizable.
Cada elemento de seleccin debe ser una referencia de columna simple ( no
puede contener expresiones, columnas calculadas, ni funciones de columna).
La clusula WHERE no debe incluir una subconsulta.
La consulta no debe incluir una clusula GROUP BY o HAVING.
La consulta no debe incluir sentencias: UNION, UNION ALL, INTERSECT, MINUS
Si una columna NOT NULL no contiene un DEFAULT, no es posible insertar
mediante vistas
Ral Jess Alejandro Lpez

Para que la vista sea de solo lectura, usaremos la clusula WITH READ
ONLY (Oracle). Observe que esta opcin no soporta la clsula ORDER BY
La clusula CHECK OPTION evita que sean insertados o modificados registro que
no sean posteriormente incluidos en la vista mediante la sentencia WHERE.
Ejemplo: Poblacin por entidad federativa 2010 INEGI (INSTITUTO NACIONAL
DE ESTADISTICA, GEOGRAFIA E INFORMATICA). El ejemplo siguiente crea una
vista que usa la clusula CHECK OPTION donde seleccionan aquellas entidades
federativas que tienen menos de 2 millones de habitantes.

?
1

CREATE TABLE entidad (

estado

CHAR(30) NOT NULL,

poblacion

NUMBER

NOT NULL

);

?
CREATE TABLE entidad (
1
Ral Jess Alejandro Lpez

2
3
4

estado

CHAR(30) NOT NULL,

poblacion

INTEGER NOT NULL

) ENGINE = InnoDB;

?
1

INSERT INTO entidad values ('Estado de Mxico',

15175862);

INSERT INTO entidad values ('Distrito Federal',

8851080);

INSERT INTO entidad values ('Veracruz',

7643194);

INSERT INTO entidad values ('Jalisco',

7350682);

INSERT INTO entidad values ('Puebla',

5779829);

INSERT INTO entidad values ('Guanajuato',

5486372);

INSERT INTO entidad values ('Chiapas',

4796580);

INSERT INTO entidad values ('Nuevo Len',

4653458);

5
6
7
8
9
10

INSERT INTO entidad values ('Michoacn de Ocampo',4351037);


INSERT INTO entidad values ('Oaxaca',

3801962);

INSERT INTO entidad values ('Chihuahua',

3406465);

11
Ral Jess Alejandro Lpez

12

INSERT INTO entidad values ('Guerrero',

3388768);

13
14

CREATE OR REPLACE VIEW entidades AS

15

SELECT * FROM entidad

16

WHERE poblacion < 2000000

17

WITH CHECK OPTION;

Ahora considere la siguiente informacin. Para insertarla en la vista recien creada.


Entidad
Tamaulipas
Baja California
Sinaloa
Coahuila de Zaragoza
Hidalgo
Sonora
San Luis Potos
Tabasco
Ral Jess Alejandro Lpez

Entidad

Yucatn
Quertaro
Morelos
Durango
Zacatecas
Quintana Roo
Aguascalientes
Tlaxcala
Nayarit
Campeche
Colima
Baja California Sur

Ral Jess Alejandro Lpez

Con la clusula CHECK OPTION cada vez que se trata de hacer una violacin de
la condicin dentro del WHERE obtendremos un error ORA-01402. Que error le
regresa MySQL
Borrado de vistas con DROP VIEW
La sentencia DROP VIEW permite borrar una vista de la base de datos. Su
sintaxis se presenta a continuacin:

?
1

DROP VIEW [usuario.] nombre_vista [CASCADE CONSTRAINTS];


DROP VIEW [IF EXISTS]

nombre_vista;

CONCLUSIN
Para concluir, primero que nada roles en bases de datos significa que es una
coleccin de privilegios del sistema y de objetos que le son asignados a los
usuarios, en cuanto a Oracle soporta muchos roles de manera predeterminada de
los cuales MYSQL no los soporta. Entre las capacidades de algunos roles
algunos permiten al usuario conectarse a la base de datos, hacer tablas y otros
Ral Jess Alejandro Lpez

objetos. Otros permiten al usuario utilizar recursos de programacin de


aplicaciones y tambin algunos realizar cualquier funcin de base de datos y
disponer de cualquier tipo de privilegio asignado.
Por parte de las vistas en las bases son tablas virtuales en las cuales su contenido
es definido por una consulta, tablas y vistas comparten el mismo espacio de
nombres en la base de datos, de acuerdo a eso una base de datos no puede
contener una tabla y una vista con el mismo nombre. Tambin pueden emplearse
como medios de seguridad, que permiten obtener acceso a los datos por medio
de la vista, pero no otorgan permiso de obtener acceso directo a las tablas de la
vista.

Ral Jess Alejandro Lpez

REFERENCIAS BIBLIOGRFICAS
Mary Cruz. (2014) Taller de bases de datos. 05 de noviembre de 2015. Sitio web:
http://www.tallerdebasededatos.esy.es/4.4.html
Marce Lpez. (2015) Unidad 4 de bases de datos. 05 de noviembre de 2015. De
instituto

tecnolgico

de

Veracruz.

Sitio

http://www.prograweb.com.mx/tallerBD/0404RolUsuarios.php

Ral Jess Alejandro Lpez

web:

Das könnte Ihnen auch gefallen