4.4 roles y 4.5 vistas-taller de base de datos-unidad 4

26
3 3 INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO UNIDAD ACADÉMICA TULUM INGENIERÍA EN SISTEMAS COMPUTACIONALES UNIDAD 4 TALLER DE BASES DE DATOS ALUMNO: RAÚL JESÚS ALEJANDRO LÓPEZ DOCENTE. ING. JOSÉ TORRES EK Raúl Jesús Alejandro López و س ي خ س راول

Upload: raul-jesus-alejandro-lopez

Post on 15-Apr-2016

252 views

Category:

Documents


27 download

DESCRIPTION

investigacion de taller de bases de datos aqui encontraras los temas roles y visitas

TRANSCRIPT

Page 1: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO

UNIDAD ACADÉMICA TULUM

INGENIERÍA EN SISTEMAS COMPUTACIONALES

UNIDAD 4

TALLER DE BASES DE DATOS

ALUMNO: RAÚL JESÚS ALEJANDRO LÓPEZ

DOCENTE. ING. JOSÉ TORRES EK

INVESTIGACIÓN 4.4 ROLES Y 4.5 VISTAS

Raúl Jesús Alejandro López

سخيسوراول

Page 2: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

06-NOVIEMBRE-2015

ÍNDICE

INTRODUCCIÓN..................................................................................................................................3

4.4. ROLES..........................................................................................................................................4

4.5. VISTAS.........................................................................................................................................6

CONCLUSIÓN....................................................................................................................................13

REFERENCIAS BIBLIOGRÁFICAS........................................................................................................14

Raúl Jesús Alejandro López

سخيسوراول

Page 3: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

Raúl Jesús Alejandro López

سخيسوراول

Page 4: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

INTRODUCCIÓN Anteriormente trabajamos con la implementación 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 están determinadas para hacer cumplir estas sentencias dentro del

sistema de la base. A continuación se presenta la información recaba de

diferentes fuentes bibliográficas.

Raúl Jesús Alejandro López

سخيسوراول

Page 5: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

4.4. ROLESUn rol es una colección 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, sinónimos y otros objetos en el esquema asociado.

El rol RESOURCE permite al usuario utilizar los recursos típicos para la

programación de aplicaciones (clusters, disparadores, paquetes, funciones, etc.)

El rol DBA, típico de los administradores, permite al usuario realizar cualquier

función de base de datos y disponer de cualquier privilegio

Raúl Jesús Alejandro López

سخيسوراول

Page 6: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

La sentencia que permite crear roles es CREATE ROL. Su sintaxis es la siguiente

?

1

2

3

4

CREATE ROLE rol

[ NOT IDENTIFIED

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

| EXTERNALLY | GLOBALLY} ];

NOT IDENTIFIED indica que no se requiere contraseña 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

2

3

CREATE ROLE miPrimerRole;

GRANT SELECT, INSERT, UPDATE, DELETE ON tabla

      TO miPrimerRole;

Ejemplo: Crear un rol y asignarle todos los privilegios

Raúl Jesús Alejandro López

سخيسوراول

Page 7: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

?

1

2

CREATE ROLE miPrimerRole;

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;

Raúl Jesús Alejandro López

سخيسوراول

Page 8: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

4.5. VISTASUna 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 través de la vista, y SQL permite acceder a

estos resultados como si fueran de hecho una tabla real en la base de datos.

Raúl Jesús Alejandro López

سخيسوراول

Page 9: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

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 percepción 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

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 múltiples

procesadores, cada uno de los cuales almacenan datos para una región distinta

de su organización, puede crear consultas distribuidas o paralelas aumentando la

eficiencia de las consultas.

Mediante diversas cláusulas es

factible crear, modificador, eliminar y administrar vistas. La sintaxis básica para

estas cláusulas es genérica entre diversos gestores de base de datos. Sin

embargo en lo particular cada gestor implementa la administración de estas de

Raúl Jesús Alejandro López

سخيسوراول

Page 10: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

forma diferente. En este documento se presenta la sintaxis particular de Oracle

10g, comparando en forma genérica con MySQL 5.

La sintaxis básica de una vista (Oracle y MySQL) es:

?

1 CREATE VIEW nombre_vista AS consulta;

Sintaxis CREATE VIEW

?

1

2

3

4

CREATE [OR REPLACE]

  VIEW nombre_vista AS sentencia_select

  [WITH [CASCADED | LOCAL] CHECK OPTION]

   WITH READ ONLY

?

Raúl Jesús Alejandro López

سخيسوراول

Page 11: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

1

2

3

4

5

CREATE [OR REPLACE]

  [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

  VIEW nombre_vista [(columnas)]

  AS sentencia_select

  [WITH [CASCADED | LOCAL] CHECK OPTION]

Ejemplo: Países del continente Americano

?

1

2

3

4

5

CREATE OR REPLACE VIEW america AS

SELECT P.nombre, P.capital

FROM continente C, pais P

WHERE (C.nombreContinente = 'América')

       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.

Raúl Jesús Alejandro López

سخيسوراول

Page 12: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

?

1

2

3

4

5

6

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

  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

2

CREATE OR REPLACE VIEW caballoDeHierro AS

SELECT P.nombrePosicion, E.nombreEquipo equipo,

Raúl Jesús Alejandro López

سخيسوراول

Page 13: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

3

4

5

6

7

8

9

       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;

Actualización 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 cláusula FROM debe especificar sólo una tabla actualizable.

Cada elemento de selección debe ser una referencia de columna simple ( no

puede contener expresiones, columnas calculadas, ni funciones de columna).

Raúl Jesús Alejandro López

سخيسوراول

Page 14: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

La cláusula WHERE no debe incluir una subconsulta.

La consulta no debe incluir una cláusula 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

Para que la vista sea de solo lectura, usaremos la cláusula WITH READ

ONLY (Oracle). Observe que esta opción no soporta la clásula ORDER BY

La cláusula CHECK OPTION evita que sean insertados o modificados registro que

no sean posteriormente incluidos en la vista mediante la sentencia WHERE.

Ejemplo: Población por entidad federativa 2010 INEGI (INSTITUTO NACIONAL

DE ESTADISTICA, GEOGRAFIA E INFORMATICA). El ejemplo siguiente crea

una vista que usa la cláusula CHECK OPTION donde seleccionan aquellas

entidades federativas que tienen menos de 2 millones de habitantes.

?

1 CREATE TABLE entidad (

Raúl Jesús Alejandro López

سخيسوراول

Page 15: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

2

3

4

  estado     CHAR(30) NOT NULL,

  poblacion  NUMBER   NOT NULL

);

?

1

2

3

4

CREATE TABLE entidad (

  estado     CHAR(30) NOT NULL,

  poblacion  INTEGER NOT NULL

) ENGINE = InnoDB;

?

1

2

3

4

INSERT INTO entidad values ('Estado de México',  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);

Raúl Jesús Alejandro López

سخيسوراول

Page 16: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

5

6

7

8

9

10

11

12

13

14

15

16

17

INSERT INTO entidad values ('Guanajuato',         5486372);

INSERT INTO entidad values ('Chiapas',            4796580);

INSERT INTO entidad values ('Nuevo León',         4653458);

INSERT INTO entidad values ('Michoacán de Ocampo',4351037);

INSERT INTO entidad values ('Oaxaca',             3801962);

INSERT INTO entidad values ('Chihuahua',          3406465);

INSERT INTO entidad values ('Guerrero',           3388768);

CREATE OR REPLACE VIEW entidades AS

SELECT * FROM entidad

WHERE poblacion < 2000000

WITH CHECK OPTION;

Ahora considere la siguiente información. Para insertarla en la vista recien creada.

Entidad Población

Tamaulipas 3,268,554

Raúl Jesús Alejandro López

سخيسوراول

Page 17: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

Entidad Población

Baja California 3,155,070

Sinaloa 2,767,761

Coahuila de Zaragoza2,748,391

Hidalgo 2,665,018

Sonora 2,662,480

San Luis Potosí 2,585,518

Tabasco 2,238,603

Yucatán 1,955,577

Querétaro 1,827,937

Morelos 1,777,227

Durango 1,632,934

Zacatecas 1,490,668

Quintana Roo 1,325,578

Aguascalientes 1,213,445

Tlaxcala 1,169,936Raúl Jesús Alejandro López

سخيسوراول

Page 18: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

Entidad Población

Nayarit 1,084,979

Campeche 822,441

Colima 650,555

Baja California Sur 637,026

Con la cláusula CHECK OPTION cada vez que se trata de hacer una violación de

la condición 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 continuación:

?

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

Raúl Jesús Alejandro López

سخيسوراول

Page 19: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

DROP VIEW [IF EXISTS]  nombre_vista;

CONCLUSIÓN Para concluir, primero que nada roles en bases de datos significa que es una

colección 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

objetos. Otros permiten al usuario utilizar recursos de programación de

aplicaciones y también algunos realizar cualquier función 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. También 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.

Raúl Jesús Alejandro López

سخيسوراول

Page 20: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

REFERENCIAS BIBLIOGRÁFICAS Mary Cruz. (2014) Taller de bases de datos. 05 de noviembre de 2015. Sitio web:

http://www.tallerdebasededatos.esy.es/4.4.html

Marce López. (2015) Unidad 4 de bases de datos. 05 de noviembre de 2015. De

instituto tecnológico de Veracruz. Sitio web:

http://www.prograweb.com.mx/tallerBD/0404RolUsuarios.phpRaúl Jesús Alejandro López

سخيسوراول

Page 21: 4.4 Roles y 4.5 Vistas-taller de Base de Datos-unidad 4

Raúl Jesús Alejandro López

سخيسوراول