Capítulo 6. Otros objetos de la base de datos

Documentos relacionados
ÍNDICE PRIMERA PARTE... 17

GESTORES GESTORES DE BASES DE DATOS

Consultas con combinaciones

M. C. Gustavo Alfonso Gutiérrez Carreón

MANUAL BÁSICO DE MYSQL

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

PARTE I. VISTAS. Tema 1. Vistas

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

Acceso a bases de datos MySQL con PHP

5 Objetos de base de datos

ÍNDICE INTRODUCCIÓN...17

Grupo Kybele, Pág. 1

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

CONTROL DE ACCESO. curso 2008

Modelo de base de datos única con múltiples geobases de datos. Modelo de múltiples bases de datos espaciales

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

8 SQL SERVER 2008 RA-MA

Temario. Índices simples Árboles B Hashing

Integridad Referencial. Restricciones (constraints)

SQL Los fundamentos del lenguaje

INSTITUTO POLITÉCNICO NACIONAL. ESCUELA SUPERIOR DE CÓMPUTO. WEB II. MySQL. Que el alumno aprenda a usar el servidor de base de datos MySql.

Seguridad en SQL Server 2005

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Módulo 7. Administración de MySQL

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

Vistas en postgresql

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Tema 33. El lenguaje SQL

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Objetivos y Temario CURSO MySQL 5

PROGRAMANDO BASES DE DATOS PostgreSQL INTRODUCCIÓN INTRODUCCIÓN A LAS BASES DE DATOS (L1)

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

Curso de MySQL y Java

T12 Vistas y tablas temporales

Trabajos de Ampliación. Bases de datos NoSQL.

2.5.- El lenguaje estándar SQL

Sistemas de Bases de Datos 2 Practica 1

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

TEMA 2. INTRODUCCIÓN A MYSQL

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS.

ÍNDICE INTRODUCCIÓN...13

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

LENGUAJE DE MANIPULACIÓN DE DATOS

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Instalación y Configuración de MySQL

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Restricciones (constraints) FOREIGN KEY

1 Objetivo. Diseño de Interfaces Hombre Máquina. Práctica 6 Acceso a bases de datos

3. El catálogo 26. Laboratorio de Bases de Datos

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Unidad. Lenguaje SQL. (Structured Query Language)

Diseña y Administra Bases de Datos Guía de Estudio

Formatos para prácticas de laboratorio

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

RICHARD ALEXANDER BETANCUR SIERRA

Oracle Database: Introducción a SQL

Asignatura: Administración de Bases de Datos

mysql Departamento de Lenguajes y Computación Universidad de Almería mysql Contenidos

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

Taller de Programación II J2EE

Introducción a las bases de datos.

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

El Manejador de Bases de Datos Relacionales ORACLE

Base de Datos Conjunto de información organizada especialmente para búsqueda y entrada de datos. Base de Datos: Ejemplo Usuarios

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h

SQL (Structured Query Language)

MANUAL BÁSICO DEL LENGUAJE SQL

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

Haga clic para PostgreS cambiar el estilo

UNIVERSIDAD NACIONAL DE INGENIERIA Dirección de Estudios de Posgrado y Educación Continua UNI-DEPEC

Bases de datos: Sistemas de bases de datos:

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Capítulo 5. Edición de datos

Introducción al SQL de InterBase: DDL y DML

Tipos de datos estructurados

Existen muchos tipos de base de daos en función del modo en que almacenan y acceden a la información que almacenan.

Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig

RESTRICCIONES DE DOMINIOS

Transcripción:

Capítulo 6 Otros objetos de la base de datos

ÍNDICE CAPÍTULO 6 Vistas Ventajas Vistas en MySQL Enlaces a otras bases de datos Enlaces entre tablas de distintos gestores Vínculos a bases de datos remotas Sinónimos Públicos Privados

VISTAS Son consultas almacenadas Representan una sección o parte de la base de datos Pertenecen al nivel externo

VISTAS Ventajas Representan un subconjunto de los datos de una o varias tablas Simplifican la realización de combinaciones (JOIN) de tablas al poder definirlas como una única vista Pueden actuar como tablas agregadas pudiendo resumir en una tabla el resultado de funciones de agregación aplicadas sobre varias tablas Ocultan la complejidad de los datos evitando que el cliente deba conocer todo el diseño relacional subyacente a una base de datos Ocupan poco espacio ya que solo se almacena su definición Proporcionan una capa adicional de seguridad ya que evitan el acceso directo a los datos de las tablas subyacentes

Vistas en MySQL I Las vistas se crean con el comando CREATE VIEW Pueden contener casi cualquier tipo de consulta Restricciones: Que no se usen tablas temporales No usar cláusulas GROUP BY ni HAVING No usar uniones ni reuniones externas No usar consultas correlacionadas Para el caso de reuniones INNER podemos actualizar o insertar siempre y cuando los campos afectados sean únicamente los de una de las tablas implicadas en la reunión

Vistas en MySQL II Hay vistas actualizables Admiten comandos UPDATE, INSERT, DELETE Se requiere relación uno a uno entre los registros de la vista y la tabla subyacente En el caso de comandos INSERT se requiere además -No debe haber nombres duplicados -Debe incluir todas las columnas de las tablas que no tengan indicado un valor por defecto. -Las columnas de la vista deben ser referencias a columnas simples y no columnas derivadas

Vistas en MySQL: comandos I Creación de vistas CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED MERGE TEMPTABLE}] [DEFINER = { user CURRENT_USER }] [SQL SECURITY { DEFINER INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED LOCAL] CHECK OPTION]

Vistas en MySQL: comandos II Creación de vistas Ejemplo Para poder dar acceso a sus datos a un jugador de la base de datos liga podemos crear la siguiente vista con el algoritmo MERGE: CREATE ALGORITHM=MERGE VIEW vdatos_jugador as SELECT * FROM jugador WHERE id_jugador=identificador_jugador$$ Así, mediante esta vista cada jugador solo tendrá acceso a sus datos.

Vistas en MySQL: comandos III Modificación de vistas ALTER [ALGORITHM = {UNDEFINED MERGE TEMPTABLE}] VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED LOCAL] CHECK OPTION] Eliminación, DROP VIEW DROP VIEW [IF EXISTS] nombre_vista [, nombre_vista]... [RESTRICT CASCADE]

Vistas en MySQL: comandos IV Consulta de vistas Para la obtención de información de definición de una vista usamos SHOW CREATE VIEW. También podemos acceder directamente a la tabla VIEWS de INFORMATION_SCHEMA. Por ejemplo, para ver información de una vista en la base de datos test usamos lo siguiente: SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA ='test';

Enlaces a otras bases de datos I Enlaces entre tablas de distintos gestores Permiten que otros usuarios puedan acceder a nuestros datos sin conocer nuestro gestor Permiten usa herramientas de otros gestores manteniendo nuestros gestor de datos.

Enlaces a otras bases de datos II Enlaces entre tablas de distintos gestores Ejemplo En el siguiente ejemplo explicamos cómo acceder a tablas MySQL desde un gestor como base del paquete ofimático LibreOffice. 1. Una vez descargado e instalado el paquete de la página oficial (http://www.libreoffice.org/) lo iniciamos desde Inicio Programas LibreOffice Base. 2. A continuación veremos un cuadro de diálogo similar a lo siguiente:

Enlaces a otras bases de datos III Enlaces entre tablas de distintos gestores 3. Ahora se nos pregunta por si queremos usar JDBC u ODBC como medio de conexión. Elegimos JDBC por ser más óptimo. 4. En este momento debemos indicar los parámetros de nuestro servidor: base de datos, nombre o IP del equipo servidor y puerto en el que escucha el servidor MySQL. 5. Finalmente se nos pide el nombre de usuario, así como si la base de datos requiere contraseña o no y después de finalizar podremos guardar la base de datos con el nombre que queramos en nuestro equipo. 6. Cuando abramos el fichero guardado podremos trabajar con la base de datos tal como haríamos desde MySQL.

Enlaces a otras bases de datos IV Vínculos a bases remotas: Oracle (Database link) Databaselink es un puntero desde una base de datos hacia otra base de datos remota Ejemplo Si tengo la tabla t1 en mi base de datos oracle1 y quiero hacer un SELECT sobre la t2 de la base de datos oracle2. Si creamos en oracle1 un database link llamado por ejemplo oracle2dblink esta consulta sería tan simple como ejecutar: SELECT * FROM t2@oracle2dblink Desde nuestra base de datos oracle1, podríamos estar consultando los datos de la tabla t2 de la base de datos remota oracle2.

Enlaces a otras bases de datos V Vínculos a bases remotas: Oracle (Database link) Comando creación database links CREATE [ SHARED ] [ PUBLIC ] DATABASE LINK dblink [ CONNECT TO { CURRENT_USER user IDENTIFIED BY password [ dblink_authentication ] } dblink_authentication ] [ USING 'connect_string' ] ;

Enlaces a otras bases de datos VI Vínculos a bases remotas: Oracle (Database link) Ejemplo creación database links Database link para enlazar con la base de datos liga de un servidor remoto. CREATE DATABASE LINK liga_dblink CONNECT TO root IDENTIFIED BY root USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = Hostname)(PORT = 1521)) (CONNECT_DATA = (SID = liga))) Crearíamos entonces un dblink llamado liga_dblink que nos permite conectar desde la base de datos actual a la base remota liga, situada en el host= Hostname y con el SID= liga Ahora si quisiéramos usar el enlace, por ejemplo para una consulta, ejecutamos la SELECT concatenando al identificador de la tabla @liga_dblink : SELECT id,name FROM Usuarios@liga_dblink;

Enlaces a otras bases de datos VII Vínculos a bases remotas: Oracle (Database link) Tipos de enlaces en Oracle Private: el propietario es el usuario que crea el enlace. En este caso se crea el enlace dentro de un esquema específico del servidor. Solo el propietario puede acceder al enlace. Public: el propietario es el usuario especial PUBLIC. Es un enlace visible por todos los usuarios de las bases de datos en el servidor permitiéndoles acceso a los objetos de la base de datos remota correspondiente. Global: el propietario es PUBLIC. Se da cuando Oracle usa un servidor de directorio (Directory Server) en cuyo caso el enlace es accesible desde cualquier servidor dentro del directorio mediante los servicios de nombres de red (net service name).

Enlaces a otras bases de datos VIII Vínculos a bases remotas: Oracle (Database link) Tipos de usuarios de enlaces en Oracle Usuarios conectados: son los que se usan cuando no se especifica ninguno en la creación del link (no tiene que ser el que creó el enlace, sino el que lo usa en ese momento). Usuario actual: es un usuario global especial especificado mediante CURRENT_USR en la creación del enlace. Usuario fijo: es aquel cuyas credenciales están incluidas en la definición del enlace. Éstas se usarán para la autenticación en el equipo servidor remoto.

Enlaces a otras bases de datos IX Vínculos a bases remotas: Motor FEDERATED de MySQL Una forma alternativa de crear enlaces en MySQL Las tablas federadas se crean con el comando DDL CREATE TABLE incluyendo la opción CONNECTION con la siguiente sintaxis: scheme://user_name[:password]@host_name[:port_num]/db_na me/tbl_name

Enlaces a otras bases de datos X Vínculos a bases remotas: Motor FEDERATED de MySQL Ejemplo Supongamos que disponemos de dos servidores en ejecución, en la misma máquina o en distintas Queremos acceder a una tabla remota en uno de los servidores (dentro de la base de datos test) que se define así: CREATE TABLE remote_table( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other)) La opción de tabla (ENGINE) puede ser cualquiera

Enlaces a otras bases de datos XI Vínculos a bases remotas: Motor FEDERATED de MySQL Ejemplo A continuación, creamos una tabla de tipo FEDERATED en el servidor local para acceder a la tabla remota: CREATE TABLE federated_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://root@equipo_remoto:9306/test/remote_table; La estructura de esta tabla debe ser exactamente la misma que la de la tabla remota, excepto que la opción de tabla ENGINE debe ser FEDERATED.

Sinónimos I Nombre alternativo para una tabla, vista, rutina, secuencia o base de datos Facilitan a los usuarios acceder a objetos de las bases de datos que son propiedad de otros usuarios Simplifican la nomenclatura de los objetos Comando creación/eliminación CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object [ @ dblink ] ; DROP [PUBLIC] synonym La clausula PUBLIC especifica que el sinónimo es público, es decir visible para todos los usuarios. En otro caso es privado

Sinónimos II Ejemplo sinónimos público y privado Para crear un sinónimo privado llamado sequipos sobre la tabla equipos de la base (schema) liga CREATE SYNONYM sequipos FOR liga.equipos; Para crear un sinónimo público sobre la base remota liga en la tabla equipos: CREATE SYNONYM sequipos FOR liga.equipos@remota.sierra.com;

FIN CAPITULO 6