manual oracle 10g

78
1 ANEXO UNO - D Oracle Database 10g Express Edition Manual del Participante Secretaría de Finanzas Subsecretaría de Administración Dirección General del Instituto de Profesionalización de los Servidores Públicos Programa General de Capacitación y Desarrollo 2010 Basado en: Detección de Necesidades de Capacitación Duración: 20 horas

Upload: israel-de-mines

Post on 24-Jun-2015

4.781 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Manual Oracle 10g

1

0. PORTADA

ANEXO UNO - D

Oracle Database 10g Express Edition Manual del Participante

Secretaría de Finanzas Subsecretaría de Administración Dirección General del Instituto de Profesionalización de los Servidores Públicos

Programa General de Capacitación y Desarrollo 2010

Basado en: Detección de Necesidades de Capacitación

Duración: 20 horas

Page 2: Manual Oracle 10g

2

El presente Manual forma parte del material didáctico de los eventos de capacitación que corresponden al Programa General de Capacitación 2010, que ofrece el Instituto de Profesionalización de los Servidores Públicos, mismo que fue elaborado por: Universidad Autónoma del Estado de México Dirección de Tecnologías de la Información y Comunicaciones

Ing. Denys Bustamante Fernández Ing. Roxana Trevilla Godínez

Page 3: Manual Oracle 10g

3

I. ÍNDICE Página

0. Portada ...................................................................................................................................... 1

I. Índice ......................................................................................................................................... 3

II. Carta de Bienvenida .................................................................................................................. 6

III. Introducción ............................................................................................................................... 7

IV. Objetivo General ....................................................................................................................... 8

V. Temas y Subtemas ................................................................................................................... 9

Tema I Elementos esenciales de las bases de datos ............................................................... 9

1.1 Resultados del Aprendizaje ........................................................................................... 9

1.2 Introducción ................................................................................................................... 9

1.2.1 Bases de Datos ................................................................................................... 9

1.2.2 Oracle Database10g .........................................................................................12

1.2.3 Proceso de desarrollo de Sistemas ..................................................................12

1.3 Introducción a la arquitectura de Oracle 10g ...............................................................14

1.3.1 Arquitectura .......................................................................................................14

1.3.2 Estructura de la base de datos .........................................................................14

1.3.3 Autenticación en Oracle 10g .............................................................................17

1.3.4 Página principal .................................................................................................19

1.3.5 Navegación en los menús .................................................................................20

Tema II Lenguaje SQL ............................................................................................................21

2.1 Resultados ...................................................................................................................21

2.2 Introducción .................................................................................................................21

2.3 Aplicaciones del SQL ...................................................................................................21

2.3.1 Aplicaciones del SQL ........................................................................................21

2.3.2 Clasificación de los enunciados de SQL ...........................................................21

2.3.3 Recomendaciones al escribir enunciados de SQL ...........................................22

2.3.4 Ejecución de enunciados de SQL .....................................................................23

Tema III Enunciado de Selección de Datos ............................................................................25

3.1 Resultados ...................................................................................................................25

3.2 Introducción .................................................................................................................25

3.3 Enunciado de Selección de Datos ...............................................................................25

3.3.1 Capacidades del Select ....................................................................................25

3.3.2 Recuperación de datos en Oracle 10g .............................................................27

3.3.3 Sintaxis Básica ..................................................................................................27

3.3.4 Uso de alias de columna ...................................................................................28

3.3.5 Expresiones Aritméticas ....................................................................................28

3.3.6 Definición del valor NULL ..................................................................................29

Page 4: Manual Oracle 10g

4

3.3.7 Operador de Concatenación .............................................................................29

3.3.8 Restricción de datos – Cláusula WHERE .........................................................30

3.3.9 Clasificación de los datos – Cláusula ORDER BY ............................................31

3.3.10 Usando condiciones para valores NULOS .....................................................31

3.3.11 Condiciones Lógicas .......................................................................................31

3.3.12 Reglas de precedencia ...................................................................................32

Tema IV Funciones de SQL ....................................................................................................33

4.1 Resultados ...................................................................................................................33

4.2 Introducción .................................................................................................................33

4.3 Funciones de SQL .......................................................................................................33

4.3.1 Las funciones de SQL .......................................................................................33

4.3.2 Tipos de funciones de SQL ...............................................................................34

4.3.3 Funciones de un solo renglón ...........................................................................35

4.3.4 Funciones de múltiple renglón ..........................................................................40

Tema V Obtención de datos de Múltiples Tablas ...................................................................43

5.1 Resultados ...................................................................................................................43

5.2 Introducción .................................................................................................................43

5.3 Obteniendo datos de distintas tablas ...........................................................................43

5.3.1 Uniendo dos o más tablas .................................................................................44

5.3.2 Tipos de uniones ...............................................................................................46

Tema VI Subconsultas ............................................................................................................50

6.1 Resultados ...................................................................................................................50

6.2 Introducción .................................................................................................................50

6.3 Subconsultas ...............................................................................................................50

6.3.1 Como identificar las subconsultas.....................................................................50

6.3.2 Sintaxis de las subconsultas .............................................................................51

Tema VII Manipulación de Datos ............................................................................................53

7.1 Resultados ...................................................................................................................53

7.2 Introducción .................................................................................................................53

7.3 Lenguaje de Manipulación de Datos ...........................................................................53

7.3.1 Enunciados DML ...............................................................................................53

7.3.2 Enunciado INSERT ...........................................................................................53

7.3.3 Enunciado UPDATE ..........................................................................................54

7.3.4 Enunciado DELETE ..........................................................................................55

7.3.5 Enunciado MERGE ...........................................................................................55

7.3.6 Transacciones en la Base de Datos .................................................................56

Tema VIII Administración de Bases de Datos ........................................................................58

Page 5: Manual Oracle 10g

5

8.1 Resultados ...................................................................................................................58

8.2 Introducción .................................................................................................................58

8.3 Objetos de la Base de Datos .......................................................................................58

8.3.1 Objetos básicos de una Base de Datos ............................................................58

8.3.2 Creación de Tablas ...........................................................................................58

8.3.3 Las tablas en la base de datos .........................................................................59

8.3.4 Tipos de Datos ..................................................................................................60

8.3.5 Eliminación de una Tabla ..................................................................................60

8.3.6 Validaciones en el servidor ...............................................................................61

8.3.7 Creación de Vistas ............................................................................................62

8.3.8 Otros Objetos de la base de datos....................................................................62

8.3.9 Control de Acceso a la Base de datos ..............................................................63

VI. Conclusión Final ......................................................................................................................64

VII. Glosario ...................................................................................................................................65

VIII. Bibliografía ............................................................................................................................69

IX. Del autor ..................................................................................................................................70

X. Anexo ......................................................................................................................................72

Page 6: Manual Oracle 10g

6

II. CARTA DE BIENVENIDA

Construir una administración pública moderna que permita impulsar el desarrollo y garantice la

estabilidad institucional es uno de los objetivos del Licenciado Enrique Peña Nieto, Gobernador

Constitucional del Estado de México, establecida en los cimientos de Seguridad Integral dentro del

Plan de Desarrollo 2005-2011.

Dentro de estos se encuentra el que corresponde al de Reforma Administrativa para un Gobierno

Transparente y Eficiente, el cual para realizarse tiene como estrategia la Gestión Pública:

Innovación para la Eficiencia, cuyas principales líneas de acción se encuentran: arraigar en el

servidor público una cultura de servicio eficiente, cálida y cercana a la población, bajo la

perspectiva de mejora continua, fortalecer la profesionalización de la carrera administrativa y

asegurar la continuidad de los programas gubernamentales, así como avanzar en el sistema del

servicio profesional de carrera para contar con personal idóneo para el ejercicio de la función

pública incluyendo mecanismos de ascenso y estímulos.

En este sentido los eventos de capacitación tienen como proposición, aportar herramientas y

técnicas que apoyen el desempeño de la función del servidor público que sea traducida como

complemento en generar una nueva cultura de servicio para el beneficio de cada una de las

personas que forman parte de la administración pública estatal y en forma particular y directa a la

ciudadanía.

El evento que se ofrece es un complemento de conocimientos y capacidades que se realiza con la

finalidad de obtener mejores resultados en el desempeño personal e institucional, y con ello alentar

una nueva actitud de servicio acorde con las expectativas ciudadanas y responsabilidades de la

administración pública estatal, con el firme propósito de fortalecer la vocación de servicio en marco

de apego a la legalidad, imparcialidad en la atención y honradez en el servicio, con el compromiso

siempre firme a la ciudadanía, al gobierno y a la unidad administrativa para la cual se desempeña.

La Secretaría de Finanzas del Gobierno del Estado de México, a través de la Dirección General del

Instituto de Profesionalización de los Servidores Públicos dependiente de la Subsecretaría de

Administración, le hace saber que es propósito permanente el que servidores públicos como usted

tengan acceso a la capacitación deseando que el evento que hoy está por iniciar cumpla con las

expectativas para lo que fue diseñado.

Page 7: Manual Oracle 10g

7

III. INTRODUCCIÓN

Oracle Database 10g Express Edition (Oracle Database XE) es una versión gratuita de una de las bases de datos del tipo relacional, Oracle ha demostrado ser una de las más eficientes herramientas en la gestión de grandes cantidades de información. . Oracle Database XE es fácil de instalar y fácil de manejar. Con Oracle Database XE, se utiliza una interfaz intuitiva basada en navegador, para administrar la base de datos, crear tablas, vistas y otros objetos de esquema, los datos de importación, la exportación, y la vista de tabla; con esta versión la ejecución de consultas, scripts SQL y la generación de informes es más intuitiva y más amigable. Oracle Database XE incluye Oracle DB HTML 2.1, un entorno declarativo, de desarrollo gráfico para crear aplicaciones web centradas en bases de datos. Además con esta versión se puede utilizar otros productos populares de Oracle para el desarrollo de aplicaciones o incluir aplicaciones de terceros para desarrollar sus aplicaciones de robustas.

Page 8: Manual Oracle 10g

8

IV. OBJETIVO GENERAL

Al finalizar el curso el participante será capaz de diseñar, crear y administrar una base de datos relacional utilizando el administrador de base de datos Oracle 10g, aprenderá a gestionar la información contenida en la base de datos a través del diseño de una interfaz gráfica y aplicará las reglas de seguridad básicas para garantizar la consistencia y confiabilidad de información alojada en la base de datos.

Page 9: Manual Oracle 10g

9

V. TEMAS Y SUBTEMAS

Tema I Elementos esenciales de las bases de datos

1.1 Resultados del Aprendizaje El participante aprenderá e identificará las partes principales de la ventana de trabajo del manejador. Conocerá los principios del proceso de análisis y diseño de una base de datos relacional.

1.2 Introducción

1.2.1 Bases de Datos

Definición de una base de datos Una base de datos es un conjunto de archivos interrelacionados entre sí, cuyo propósito es servir de almacén a grandes volúmenes de información.

Características de las base de datos Las principales características de una base de datos son las siguientes:

• Se componen de tablas

• Cada tabla es única

• Una tabla es un conjunto de registros o filas

• Cada registro se compone de campos o columnas

• Un registro tiene el mismo número de columnas

• No hay un orden al guardar los registros

• No hay un orden al guardar las tablas

• La información puede ser almacenada o recuperada utilizando el lenguaje de consulta estándar (Structured Query Language)

Page 10: Manual Oracle 10g

10

Modelos de base de datos Dentro de la ciencia de la computación a través del tiempo se han ido definiendo distintos modelos de bases de datos, que de acuerdo a sus características inherentes cada uno de ellos ha permitido resolver los problemas de eficiencia y eficacia que rodean a la extracción y manipulación de datos. Los principales modelos de bases de datos pueden verse en la siguiente tabla:

Modelo Características

Jerárquico Estructura los archivos de datos mediante padres e hijos (esquema de árbol)

Red Los archivos de datos se encuentran definidos al mismo nivel y se mantienen relacionados todos entre sí.

Multidimensional Los archivos son organizados a través de dimensiones, conformando al menos cubos de información de tres dimensiones como mínimo.

Orientado a Objetos La información de los archivos se representa mediante objetos, tal como se realiza en la programación orientada a objetos (clases, herencia, polimorfismo etc.)

Relacional Los archivos de información se interrelación a través de relaciones o reglas de asociación.

Visualmente los modelos pueden verse de la siguiente forma:

Page 11: Manual Oracle 10g

11

Administrador de base de datos Para poder administrar la información contenida en los archivos de una base de datos es indispensable disponer de un programa que permita que la búsqueda, la extracción y manipulación de la información se realice de la manera más eficiente y que siempre garantice la consistencia y confiabilidad de la información, este programa se conoce como Administrador de Bases de Datos. Así podemos definir al Administrador de base de datos como el software dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Es decir, es el medio por medio del cual podemos comunicarnos con la base de datos.

Características de un administrador de base de datos Las principales características de un administrador de base de datos son: Capacidad para almacenar y modificar altos volúmenes de datos: el programa de be permitir registrar información diversa con un propósito en particular (por ejemplo, una lista de recetas o los clientes de una empresa); debe también facilitar las tareas de registro, actualización y eliminación de los datos que contiene. Debe realizar búsquedas de los datos que almacena: debe permitir ubicar un dato de forma fácil y rápida. Por ejemplo, buscar los clientes de apellido "Gómez" que residan en la localidad cuyo código postal es 50200. Permite analizar e imprimir información: debe permitir realizar cálculos con los datos almacenados; por ejemplo, calcular qué porcentaje de las ventas totales fue realizado en la zona de Metepec. Requiere del manejo de altos volúmenes de datos: debe permitir manejar con relativa facilidad grandes volúmenes de datos, por ejemplo cambiar el encargado de ventas de todos los clientes de una zona. Debe compartir datos: es preciso que permita que más de un usuario acceda simultáneamente a los mismos datos.

Page 12: Manual Oracle 10g

12

1.2.2 Oracle Database10g Características de Oracle Database 10g Oracle ofrece una infraestructura robusta para la gestión de información para pequeñas y medianas empresas, misma que es conocida como Oracle Database 10g. Esta versión dispone de todo lo necesario para crear aplicaciones. Ente sus principales características se encuentran las siguientes:

Es escalable

Robusta, de alta disponibilidad y de arquitectura segura

Ofrece un modelo de desarrollo

Permite el uso de SQL PL/SQL ,Java y XML

Es gratuita

Hace uso de una página de administración basada en una interfaz de web muy intuitiva

Permite la inclusión de lenguajes de terceros ara el desarrollo de aplicaciones

1.2.3 Proceso de desarrollo de Sistemas A partir de una necesidad de automatización es posible utilizar una base de datos dentro de un proceso de desarrollo de sistemas, Oracle hace referencia a las siguientes fases dentro de un ciclo normal de desarrollo:

Estrategia y análisis: Permite definir los requerimientos y especificaciones que deberá contener el sistema Diseño: Consiste en realizar el diseño de la base de datos de acuerdo a lo recabado en la fase de estrategia y análisis. Se recomienda implementar el modelado de datos para obtener el diseño inicial de la base de datos. Construcción y documentación: Construcción del prototipo, creación de la base de datos, implementación del código y documentación de las especificaciones técnicas.

Estrategia y análisis

Diseño

Construcción y documentación

Transición

Producción

Page 13: Manual Oracle 10g

13

Transición: Refinamiento del prototipo, realización de pruebas y ajustes. Producción: Se deja el producto en operación a cargo de los usuarios finales, se monitorea el desempeño y se realizan adecuaciones.

Page 14: Manual Oracle 10g

14

1.3 Introducción a la arquitectura de Oracle 10g

1.3.1 Arquitectura Una base de datos de Oracle es un conjunto de datos organizados según el modelo relacional. Donde cada servidor de Oracle está constituido por una base de datos y una instancia. Una instancia es el conjunto de estructuras de memoria (SGA) y procesos en background que se ejecutan en el servidor:

Procesos de usuario: Ejecutan el código de una aplicación. Procesos de Oracle: Atienden a los procesos de usuario y realizan el

mantenimiento de la BD.

1.3.2 Estructura de la base de datos

Archivos de datos y espacios de tablas

Oracle almacena lógicamente los datos en unas estructuras llamadas tablespaces,

las cuales se almacenan físicamente en archivos o datafiles (Archivos de datos).

Una base de datos se compone de una o más tablespaces.

Cada tablespace a su vez se forma de uno o más archivos de datos.

Oracle cuenta con un perfil especial llamado SYSTEM creado automáticamente durante el proceso de instalación. Utilizado para la propia gestión de la BD

Las tablespaces constituyen la „ventana‟ a través de la cual los usuarios y diseñadores de la BD ven los datos almacenados en los archivos de datos.

El administrador de la base de datos es el encargado de mantener las relaciones entre las tablas y los archivos de datos.

Page 15: Manual Oracle 10g

15

Objetos Un objeto Oracle es un elemento creado y almacenado en la base de datos. Ejemplos: tablas, vistas, sinónimos, índices, secuencias, clusters etc.

Tablas:

Unidad básica de almacenamiento de datos.

Consta de un número fijo de columnas que describen los atributos de la entidad que representa la tabla.

Cada columna es de un tipo de datos y se identifica por un nombre.

Sobre la tabla se pueden imponer restricciones. o Tipos de restricciones:

Clave primaria (PRIMARY KEY) Valor nulo no admitido (NOT NULL) Columna exclusiva (UNIQUE) Valor por omisión (DEFAULT). Clave ajena (FOREIGN KEY).

Esquema:

Es el conjunto de objetos que posee una cuenta.

Para referirnos a un objeto determinado deberemos indicar a que esquema pertenece: nom_esquema.nom_objeto.

Vistas:

Una vista es básicamente un subconjunto de las columnas y/o filas de una tabla (u otras vistas).

Se define como una consulta y es tratada como una tabla.

Una vista no almacena datos, sólo se almacena la consulta que la define. Secuencias:

Cada secuencia genera una serie única de números.

Útil en la generación única de claves.

Pueden ser cíclicas o crecer hasta un valor máximo Sinónimos:

Identificador alternativo para denotar un objeto.

Se utilizan para: enmascarar el nombre y propietario de un objeto, dar transparencia a objetos remotos de BD distribuidas y simplificar sentencias SQL.

Page 16: Manual Oracle 10g

16

Índices:

Proporcionan un acceso más rápido a los datos.

Una vez creados son mantenidos por Oracle y utilizados para la recuperación de datos.

Se pueden crear hasta un máximo de 32 columnas.

Implementación de índices mediante B+ trees que por ser árboles balanceados igualan el tiempo de acceso a cualquier fila.

Clusters:

Agrupamiento de tablas que se almacenan juntas físicamente.

Ventajas: o Se reduce el acceso a disco cuando están involucradas esas tablas o Las columnas comunes se almacenan una sola vez.

Procedimientos, funciones, paquetes:

Funciones y procedimientos son bloques de sentencias PL/SQL que se almacenan en el diccionario de datos.

Se pueden agrupar procedimientos y funciones en paquetes. Disparadores:

Procedimientos que se ejecutan cuando se produce un evento en la BD.

Se utilizan para aumentar la integridad referencial, conseguir mayor seguridad o mejorar las opciones de auditoría.

Enlaces de BD:

Sirven para especificar una vía de acceso a un objeto situado en una BD remota.

Page 17: Manual Oracle 10g

17

1.3.3 Autenticación en Oracle 10g Como en cualquier otro administrador de base de datos Oracle, permite el manejo y administración de distintos perfiles de acceso a la base de datos, con la finalidad de salvaguardar la integridad y seguridad de los objetos de la base de datos. Cuando se realiza la instalación de Oracle 10g, en automático se realiza la creación de cuentas administrativas a partir de las cuales se podrá realizar la administración y creación de nuevas usuarios. Estas cuentas son:

system

sys En el siguiente apartado se describirán los pasos que se deben seguir para poder autentificarse como el administrador. Autentificándose como administrador 1. Abra la ventana de acceso de base de datos principal de la página:

a. En Windows, desde el menú Inicio, seleccione Programas (o Todos los programas), a continuación, Oracle Database 10g Express Edition, y luego ir a la base de datos la página principal

2. En la ventana Base de datos de inicio una página, introduzca la siguiente información

a. Nombre de usuario: system. b. Contraseña: oracle

3. Haga clic en Iniciar sesión. La base de datos Oracle XE página de inicio aparece.

Page 18: Manual Oracle 10g

18

Habilitar la cuenta de ejemplo Para iniciar con los ejercicios de la aplicación, es necesario iniciar la sesión como un usuario de base de datos. Oracle Database XE viene con un usuario de base de datos de ejemplo llamada de recursos humanos. Este usuario posee un número de tablas de bases de datos en un esquema de ejemplo que se puede utilizar para crear aplicaciones para un departamento de Recursos Humanos. Sin embargo, por razones de seguridad, esta cuenta de usuario está bloqueada así que será necesario desbloquear esta cuenta antes de poder construir una aplicación de ejemplo. Para desbloquear la cuenta de usuario se deberán seguir estos pasos: 1. Asegúrese de que está siendo iniciado sesión como el administrador de base de

datos, como se describe en la sección anterior. 2. Haga clic en el icono de Administración y, a continuación, haga clic en base de

datos de usuario. 3. Haga clic en el icono de esquema de recursos humanos para mostrar la

información del usuario para recursos humanos.

4. En Administrar la base de datos de usuario, introduzca los siguientes datos: a. Contraseña y Confirmar contraseña: Introduzca la contraseña hr. b. Estado de la cuenta: Seleccione desbloqueado. c. Funciones: Asegúrese de que tanto CONNECT y RECURSOS están

habilitadas.

Page 19: Manual Oracle 10g

19

5. Haga clic en Modificar usuario. 6. Cierre la sesión del usuario system 7. Inicie sesión con el usuario HR

1.3.4 Página principal La página principal del administrador, tiene una interfaz en HTLM que ha sido diseñada para facilitar la navegación entre las herramientas de administración:

Las secciones se ésta pantalla son las siguientes: Administración-Gestión de cuentas de usuario de base de datos, administrar la memoria, el almacenamiento y las conexiones de red, supervisar la actividad de base de datos y la información de configuración vista. Examinador de objetos: para ver, crear, modificar, buscar y eliminar base de datos de objetos. Uso de PL / SQL editor para editar y compilar los paquetes, procedimientos, funciones y desencadenadores tiempo que se aprovechan de los informes de errores.

Page 20: Manual Oracle 10g

20

SQL-Acceso de las siguientes herramientas de SQL:

Comandos SQL-Ejecutar comandos SQL y anónimo bloques PL / SQL. Ejecutar secuencias de comandos y se guarda las consultas.

SQL Scripts: para crear, editar, ver, ejecutar y borrar archivos de script. Cargar y descargar scripts de su sistema de archivos local.

Construir consultas SQL usando una interfaz gráfica de usuario. Ver resultados de la consulta con formato y guardar las consultas.

Utilidades de datos-de carga y descarga, generar DDL, ver informes de objetos, y restaurar la base de datos de objetos caídos.

1.3.5 Navegación en los menús Usted puede navegar en el Oracle Database XE en su interfaz gráfica de usuario haciendo clic en los iconos grandes en la Página de Inicio de base de datos y en las páginas de navegación. Al utilizar estos iconos, usted tiene dos opciones:

Al hacer clic en el icono: Haga clic en el icono para ir a la página indicada por el nombre del icono. Es posible que tenga que hacer clic en un número de estos iconos, descendiendo una página a la vez en la jerarquía de la página, antes de llegar a su página de destino.

Selección desde el menú del icono: Haga clic en la flecha hacia abajo del lado derecho del icono para ver un menú, a continuación, seleccione una opción en el menú o desde cualquiera de sus submenús.

Page 21: Manual Oracle 10g

21

Tema II Lenguaje SQL

2.1 Resultados El participante conocerá las características del lenguaje SQL y aprenderá a las formas en cómo puede ejecutar los enunciados en la interfaz de Oracle 10g.

2.2 Introducción Oracle ha mantenido los estándares de la industria por ello a lo largo de sus distintas versiones ha incorporado el lenguaje SQL como la herramienta de extracción de datos oficial en sus manejadores de datos. SQL es el lenguaje non procedural para acceder a una base de datos. Este lenguaje permite estructurar comandos de instrucciones SQL para realizar distintas tareas, como recuperar datos de tablas. El lenguaje SQL se encarga de automatizar la forma de navegar la base de datos y realizar la tarea deseada. Todas las operaciones de una base de datos, incluyendo la versión de Oracle Database 10g se realizan mediante sentencias SQL.

2.3 Aplicaciones del SQL

2.3.1 Aplicaciones del SQL Con las instrucciones SQL se pueden realizar las siguientes acciones:

Consultar, insertar y actualizar datos en las tablas

Realizar cálculos, almacenar e imprimir de los resultados de consulta

2.3.2 Clasificación de los enunciados de SQL Las instrucciones SQL se dividen en varias categorías, de acuerdo a los estándares internacionales dictados los la American National Standars Institute (ANSI) e International Standards Oragnization (ISO):

Lenguaje de manipulación de datos (DML) Estas declaraciones de consultas, insertar, actualizar y eliminar datos en las tablas.

Control de transacciones declaraciones Estas declaraciones confirmar o revertir el procesamiento de transacciones. Un grupo de cambios que realiza se conoce como una transacción.

Data Definition Language (DDL) Estas declaraciones crear, modificar, eliminar base de datos y objetos.

A continuación se muestran los enunciados básicos de SQL ANSI y una breve descripción:

Page 22: Manual Oracle 10g

22

Un enunciado o instrucción consiste en parte de SQL y palabras reservadas, que tienen un significado especial en SQL y no puede ser utilizado para cualquier otro propósito.e algunas técnicas que puede utilizar para incluir información en la nueva base de datos. Un ejemplo de un enunciado sería:

SELECT last_name, department_id FROM employees;

A partir de este capítulo se describirán los principales enunciados de SQL que se consideran como los fundamentales para realizar las funciones de administración de las bases de datos.

2.3.3 Recomendaciones al escribir enunciados de SQL Los enunciados de SQL pueden ser construidos fácilmente si se siguen las siguientes recomendaciones:

Los enunciado no son sensitivos a mayúsculas o minúsculas a menos que se especifique

Los enunciados pueden ser capturados en una o más líneas

Las palabras reservadas no pueden ser divididas o abreviadas

Las cláusulas deberán en la medida de lo posible escribirse en una nueva líneas para mejorar la lectura

Se recomienda que las palabras reservadas sean escritas en mayúsculas y las otras palabras en minúsculas

Page 23: Manual Oracle 10g

23

2.3.4 Ejecución de enunciados de SQL

En Oracle 10g es posible realizar la creación y ejecución de instrucciones SQL con ayuda de las herramientas conocidas como: página de comandos SQL, página Script Editor o Línea de comandos SQL (SQL * Plus).

La página de comandos SQL es una interfaz simple y fácil de usar.

Ejecución de instrucciones SQL en la página comandos SQL

Para introducir y ejecutar instrucciones SQL en la página de comandos SQL:

1. Ingrese a la página principal de base de datos. Para ejecutar los ejemplos de esta guía, inicie la sesión como usuario HR con la contraseña para el HR cuenta.

2. En la página de base de datos, haga clic en el icono de SQL para mostrar la página SQL.

3. Haga clic en el icono de comandos SQL para mostrar los comandos de la página de SQL.

4. En los comandos de la página de SQL, escriba la siguiente instrucción:

SELECT * FROM departments;

Tenga en cuenta que las instrucciones SQL se terminan con un punto y coma (;) en los ejemplos. El punto y coma es necesaria para ejecutar las instrucciones SQL en una secuencia de comandos SQL o desde la línea de SQL símbolo del sistema, pero es opcional en la página de comandos SQL.

5. Seleccionar (resaltar) la instrucción SQL que desea ejecutar, a continuación, haga clic en Ejecutar para ejecutar la instrucción y mostrar los resultados.

Page 24: Manual Oracle 10g

24

6. Si desea guardar las instrucciones SQL para su uso futuro, haga clic en el botón Guardar.

7. En el campo Nombre, escriba un nombre para las instrucciones SQL guardado. También puede introducir una descripción opcional. Haga clic en el botón Guardar para guardar la instrucción SQL.

8. Para acceder a guardar las instrucciones SQL, haga clic en la ficha SQL guardada y seleccione el nombre de la instrucción SQL guardada que desea acceder.

Desplegando la estructura de una tabla En SQL Plus es posible ver la estructura de una tabla, para ello es necesario utilizar el comando llamado DESCRIBE. Este comando mostrará las columnas y tipos de datos de una tabla. Su sintaxis es la siguiente: DESC[RIBE] tablename

Por ejemplo:

DESCRIBE employees;

Page 25: Manual Oracle 10g

25

Tema III Enunciado de Selección de Datos

3.1 Resultados El participante desarrollará las habilidades para: Crear enunciados en lenguaje SQL que le permitan realizar la selección de datos.

3.2 Introducción La acción más importante que puede llevarse a cabo en la gestión de la base de datos consiste en la posibilidad de recuperar la información que se tiene almacenada en ella, esta extracción de datos es lo que hace valiosa a una base de datos pues en cualquier momento se está garantizando que la información es consistente y es recuperable en cualquier momento, en este capítulo el participante aprenderá cómo es posible realizar la recuperación de datos a partir del enunciado de selección de datos.

3.3 Enunciado de Selección de Datos El enunciado de Selección de datos llamado SELECT es el enunciado más poderoso y versátil que se dispone en el lenguaje de SQL. Pues permite obtener la información de la base de datos respetando siempre la integridad y consistencia de la información.

3.3.1 Capacidades del Select El enunciado de selección trabaja directamente con los objetos llamados tablas de la base de datos, es importante recordar que en el modelo bidimensional las tablas se visualizan como la estructura formada por renglones y columnas, tal como se ve en la siguiente figura:

Page 26: Manual Oracle 10g

26

Con las tablas el enunciado Select permite realizar las siguientes operaciones con los registros:

Proyección: Seleccionar algunas columnas de una tabla Selección: Elegir solo algunos renglones de una tabla Join: Realizar la intersección entre dos o más tablas

Page 27: Manual Oracle 10g

27

3.3.2 Recuperación de datos en Oracle 10g Para poder ejecutar un enunciado de selección bastará con seguir los siguientes pasos:

1. Conectarse o iniciar sesión en la consola de Oracle 2. Elegir la opción de SQL 3. Y seleccionar la opción de comandos de SQL 4. En la sección del editor se deberá escribir el enunciado y al terminar 5. Se deberá dar un clic en el botón llamado Ejecutar para ver el resultado de la

extracción de datos

3.3.3 Sintaxis Básica Como todo lenguaje el enunciado select debe respetar ciertas reglas sintácticas y semánticas para tener coherencia y significado, de forma tal que su sintaxis puede verse de la siguiente forma:

Page 28: Manual Oracle 10g

28

3.3.4 Uso de alias de columna

Cuando se muestra el resultado de una consulta, SQL utiliza normalmente el nombre de la columna seleccionada como el título de la columna. Puede cambiar un título de la columna utilizando un alias de columna para hacer el título más descriptivo y fácil de entender.

Se puede especificar el alias tras el nombre en la columna SELECT lista que utiliza un espacio como separador. Si el alias contiene espacios o caracteres especiales, como signo de número # o signo de dólar $, o si es entre mayúsculas y minúsculas, escriba el alias entre comillas "".

Ejemplo: uso de un alias de columna para una posición descriptiva en una consulta SQL

SELECT employee_id "Employee ID number", last_name "Apellido" ,

FROM employees;

3.3.5 Expresiones Aritméticas Es posible modificar la forma en cómo se muestran los datos de una consulta, en especial cuando es necesario realizar algún cálculo matemático que este baso en una columna de una tabla. Para estos casos es posible utilizar operadores aritméticos, mismos que pueden afectar a una columna, un valor constante o bien utilizar operadores aritméticos. Los operadores aritméticos que se utilizan en SQL son:

Operador Descripción

+ Suma

- Resta

* Multiplicación

/ División

Estos operadores pueden utilizarse en cualquier sentencia de SQL exceptuando su uso en la cláusula FROM. Precedencia de Operadores Si una expresión aritmética contiene más de un operador, se utilizará el orden de precedencia de operadores para que la expresión pueda ser evaluada. Dicho orden puede verse en la siguiente figura:

* + - /

Page 29: Manual Oracle 10g

29

El orden de evaluación será de izquierda a derecha, de manera que:

La multiplicación tiene mayor prioridad sobre la suma y la resta

El uso de paréntesis forzarán a priorizar y clasificar las expresiones Por ejemplo sin uso de paréntesis: SELECT last_name, salary, 12*salary+100

FROM employees;

SELECT last_name, salary, 12*(salary+100)

FROM employees;

3.3.6 Definición del valor NULL Si un renglón de una tabla no tiene definido un valor para una columna se dice que tiene un valor nulo o NULL. Es decir un valor NULL se refiere a un dato que no se tiene disponible, que no ha sido asignado, que es desconocido o que no aplica. Es importante recalcar que un valor NULL no equivale a un valor de cero o de espacio. Se recomienda que durante el diseño de la base de datos se evite el uso de valores NULL pues en algunos casos este valor se omite en datos calculados o de conteos. Ejemplo: SELECT last_name, salary, commission_ptc FROM employees;

SELECT last_name, salary, 12*salary*commission_ptc FROM employees;

3.3.7 Operador de Concatenación Un operador de concatenación permite:

Unir columnas o cadenas de caracteres a otras columnas

Se representa por dos barras verticales ||

El resultado de una concatenación es una expresión de tipo cadena Ejemplo: SELECT last_name||job_id AS “Employees”

Page 30: Manual Oracle 10g

30

FROM employees;

Uso de literales Es posible que durante el uso de enunciados de selección sea necesario incluir frases o constantes dentro de alguna expresión, a estas frases o constantes se les conocerá como Cadenas de Literales. Por ejemplo: SELECT last_name | | „ es un ‟ | | job_id AS “Employee Details” FROM employees; Al usar este tipo de literales se debe tomar en cuenta lo siguiente:

Las cadenas de literales pueden ser incluidas en la sentencia SELECT

Estas cadenas de deberán estar encerradas entre comillas simples „‟

3.3.8 Restricción de datos – Cláusula WHERE

La cláusula WHERE utiliza operadores de comparación para identificar las filas de una tabla específica que cumpla con ciertas condiciones para así restringir la salida de registros

Los operadores de comparación son las enumeradas en la siguiente tabla.

Operadores de Comparación

Operador Definición =, !=, <> =,! =, <> Prueba de igual a igual no, no es igual a

>, >=, <, <= >,> =, <, <=

Prueba de una mayor que, mayor o igual que, menor que, menor que o igual a

BETWEEN ... AND ... Comprueba si hay un rango entre los valores y entre ellos dos

LIKE Busca una coincidencia en una cadena, con el comodín% símbolos (cero o varios caracteres) o _ (un carácter)

IN ( ), NOT IN ( ) IN (), NOT IN ()

Revisa que los valores se encuentren dentro de una lista de valores

IS NULL, IS NOT NULL Comprueba si un valor es nulo, no es nulo

Page 31: Manual Oracle 10g

31

3.3.9 Clasificación de los datos – Cláusula ORDER BY Usted puede utilizar SELECT con la ORDER BY cláusula para recuperar y mostrar registros de una tabla ordenada de (ordenar) por una columna especificada en la tabla. La columna especificada en la ORDER BY cláusula no tiene por qué ser en el SELECT lista de columnas que desea mostrar. Usted puede especificar el orden de clasificación como ASC para ascender o DESC para descender. El orden predeterminado es ascendente, lo que significa:

Los valores numéricos se muestran con los valores más bajos primero, como 1 a 999.

Los valores de caracteres se muestran en orden alfabético, como un primer y último Z.

Los valores de fecha se muestran con la mayor brevedad primer valor, como 01-junio-93 antes del 01-junio-95.

Nulo (vacío) se muestran los valores de una duración de secuencias ascendentes y descendentes primero de secuencias. Ejemplo:

SELECT * FROM employees WHERE manager_id = 122 ORDER BY

employee_id;

3.3.10 Usando condiciones para valores NULOS Para obtener la lista de registros que tienen incluido un valor de nulo en alguna de sus columnas es necesario utilizar las condiciones: IS NULL o IS NOT NULL Estas condiciones evaluaran una columna con valores nulos y si esta contiene dichos valores se mostrarán datos en la pantalla. Estas condiciones deberán incluirse en la cláusula WHERE. Por ejemplo: SELECT *

FROM employees

WHERE commission_ptc IS NULL;

3.3.11 Condiciones Lógicas Una condición lógica combina el resultado de dos condiciones para producir un resultado, estas condiciones lógicas utilizan operadores lógicos. En SQL se disponen de los siguientes operadores:

AND

OR

NOT

Page 32: Manual Oracle 10g

32

Para la evaluación de las condiciones lógicas los operadores basan su comportamiento en tablas de verdad, mismas que se muestran a continuación:

AND VERDAD FALSO NULL

VERDAD VERDAD FALSO NULL

FALSO FALSO FALSO FALSO

NULL NULL FALSO NULL

Or VERDAD FALSO NULL

VERDAD VERDAD VERDAD VERDAD

FALSO VERDAD FALSO NULL

NULL VERDAD NULL NULL

Not VERDAD FALSO NULL

FALSO VERDAD NULL

3.3.12 Reglas de precedencia

Las reglas de precedencia determinan el orden en el que las expresiones serán evaluadas o calculadas. La tabla siguiente muestra el orden de evaluación:

Orden de evaluación Operador

1 Operadores aritméticos

2 Operadores de concatenación

3 Condiciones de comparación

4 IS [NOT] NULL, LIKE, [NOT] IN

5 [NOT] BETWEEN

6 Condición NOT

7 Condición AND

8 Condición OR

Para modificar este orden será necesario usar paréntesis para cambiar su evaluación.

Page 33: Manual Oracle 10g

33

Tema IV Funciones de SQL

4.1 Resultados Al terminar el capítulo el participante será capaz de conocer y utilizar las distintas funciones de SQL, aplicará estas funciones a enunciados del tipo SELECT.

4.2 Introducción Las funciones constituyen el bloque básico y más poderoso que se dispone en SQL para manipular los datos. A lo largo de este capítulo se presentarán las funciones de un renglón, de agrupación, de tipo carácter, numéricas y de fechas que permitirán manipular los datos.

4.3 Funciones de SQL

4.3.1 Las funciones de SQL Las funciones se consideran una de las características más poderosas de SQL, ya que estas permiten realizar lo siguiente:

Permiten realizar cálculos sobre los datos

Pueden modificar a solo un conjunto de registros

Trabajan con grupos de datos

Permiten dar formato a fechas y números

Permiten la conversión de datos

Función

Resultadoarg 1

arg 2

arg n

Entrada

Ejecución

Salida

Page 34: Manual Oracle 10g

34

4.3.2 Tipos de funciones de SQL Existen dos tipos de funciones:

Funciones de un solo renglón: Operan solo sobre un renglón, es decir regresaran el resultado por cada renglón afectado.

Funciones de múltiple renglón: Pueden manipular grupos de renglones dando un solo resultado por grupo, estas funciones se conocen también como funciones de agrupación.

El uso de las funciones deberá realizarse en la cláusula del SELECT, de acuerdo a la siguiente sintaxis: SELECT nombre_función[argumento],[columna] FROM tabla [WHERE] [ORDER BY]

Funciones

un solo renglónmúltiple renglón

Page 35: Manual Oracle 10g

35

4.3.3 Funciones de un solo renglón Este tipo de funciones trabajan de forma individual con cada renglón que sea afectado por la función. Este tipo de funciones pueden recibir uno o más argumentos y regresan un solo valor para cada registro. Las funciones de un solo renglón a su vez se clasifican en las siguientes categorías: Funciones de tipo carácter Estas funciones trabajan con tipos de datos cadena. A continuación se listan las funciones de esta categoría y su descripción:

Función Descripción Sintaxis LOWER Convierte a minúsculas LOWER(columna)

Ejemplo: LOWER(„Hola‟) = hola

UPPER Convierte a mayúsculas UPPER(columna) Ejemplo: UPPER („Hola‟) = HOLA

INITCAP Capitaliza la primera letra de una cadena

INITCAP(columna) Ejemplo: INITCAP(„hola‟)=Hola

CONCAT Concatena cadenas CONCAT(columna1, columna2) Ejemplo: CONCAT(„Hola‟,‟amigo‟)= Holaamigo

SUBSTR Extrae caracteres de una cadena SUBSTR(cadena, pos_inicial, num_caracteres) Ejemplo: SUBSTR(„HolaMundo‟,1,4)=Hola

LENGTH Obtiene el largo de una cadena LENGTH(columna) Ejemplo: LENGTH(„Hola‟)=4

Caracter

Númericas

FechaConversión

GeneralesFunciones de

un solo

renglón

Page 36: Manual Oracle 10g

36

Función Descripción Sintaxis INSTR Encuentra la posición de un carácter

en una cadena INSTR(columna, cadena) Ejemplo: INSTR(„HolaMundo‟, „M‟)=5

LPAD | RPAD Coloca el valor alineado a la derecha o a la izquierda

LPAD(columna,posiciones,caracter) RPAD(columna,posiciones,caracter) Ejemplo: LPAD(salario,10,*)=*****24000 RPAD(salario,10,*)= 24000*****

TRIM Elimina el carácter de una cadena TRIM(carácter FROM columna) Ejemplo: TRIM(„H‟ FROM „HolaAmigo‟)= olaAmigo

REPLACE Reemplaza el texto buscado en una cadena

REPLACE(columna, cadena_buscada,cadena_reemplazo) Ejemplo: REPLACE(„HolaAmigo‟, „Hola‟,‟Bye‟)=ByeAmigo

Funciones de tipo numérico Las funciones de tipo numérico solo trabajan y devuelven resultados con datos numéricos. La lista de funciones numéricas son:

Función Descripción Sintaxis ROUND Redondea un valor a una posición

decimal especifica ROUND(columna, decimal) Ejemplo: ROUND(45.926, 2) = 45.93

TRUNC Trunca el valor a un decimal especificado

TRUNC(columna, decimal) Ejemplo: TRUNC(45.926, 2)=45.92

MOD Devuelve el residuo de la división MOD(divisor, dividendo ) Ejemplo: MOD(1600,300)=100

Funciones de tipo fecha En Oracle las fechas se almacenan internamente en un formato numérico que representa el siglo, el año, mes, día, hora, minuto y segundos. El formato estándar de despliegue es el DD-MM-YY, el rango de fechas válido en Oracle va del 1 de Enero del año 4712 A.C hasta el 31 de Diciembre del año 9999 D.C. De manera interna Oracle almacena una fecha en el siguiente orden:

Siglo Año Mes Día Hora Minuto Segundo

19 94 06 07 5 10 43

En Oracle se utiliza la función SYSDATE para obtener la fecha y hora actual del servidor de base de datos.

Page 37: Manual Oracle 10g

37

Su sintaxis es la siguiente: SELECT SYSDATE FROM DUAL; Operaciones aritméticas con las fechas Dado que las fechas se almacenan como números es posible realizar con ellas operaciones aritméticas para manipular sus valores, las operaciones que pueden realizarse con este tipo de datos son:

Operación Resultado Descripción

Fecha + número Fecha Suma un número de días a una fecha Fecha – número Fecha Resta a una fecha un número de días Fecha – Fecha Número de días Extrae una fecha de otra Fecha + numero /24 Fecha Agrega un número de horas a una fecha

Funciones de Fecha Las funciones de fecha que Oracle tiene implementadas son:

Función Descripción Sintaxis MONTHS_BETWEEN Encuentra el número de meses

trascurridos entre dos fechas MONTHS_BETWEEN(fecha1, fecha2) Ejemplo: MONTHS_BETWEEN(‟01-SEP-95‟, ‟11-Jan-94‟) = 19.67

ADD_MONTHS Agrega n meses a una fecha ADD_MONTHS(fecha,n) Ejemplo: ADD_MONTHS(‟11-JAN-94‟,6)=‟11-JUL-94‟

NEXT_DAY Determina el siguiente día de la semana

NEXT_DAY(fecha,‟char‟) Ejemplo: NEXT_DAY(‟01-SEP-95‟,‟FRIDAY‟)=‟08-SEP-95‟

LAST_DAY Determina el último día del mes LAST_DAY(fecha) Ejemplo: LAST_DAY(‟01-FEC-95‟)=‟28-FEB-95‟

ROUND Redondea una fecha ROUND (fecha[,‟fmt‟]) Ejemplo: ROUND (‟25-JUL-95‟,‟MONTH‟) = 01-AGU-95 ROUND (‟25-JUL-95‟,‟YEAR‟) = 01-JUN-96

TRUNC Regresa una porción de una fecha TRUNC(fecha[, „fmt‟]) Ejemplo: TRUNC(‟25-JUL-95‟,‟MONTH‟) = 01-JUL-95 TRUNC(‟25-JUL-95‟,‟YEAR‟) = 01-JAN-95

Funciones de conversión En algunos casos se requiere convertir la salida de algunas de las columnas mediante el cambio de tipo de datos, esta conversión en Oracle puede realizarse de dos formas:

Conversión Implícita

Conversión Explícita

Page 38: Manual Oracle 10g

38

Oracle puede convertir de manera automática los siguientes tipos de datos:

De Varchar o char a Número

De Varchar2 o char a Fecha

De número a Varchar2

De Fecha a Varchar2 Para aquellos casos en que se deseen realizar conversiones que no son automáticas de deberá recurrir a la conversión explicita, misma que se sigue de acuerdo al siguiente diagrama:

Función Descripción Sintaxis TO_NUMBER Convierte una cadena con dígitos en

un número TO_NUMBER(char,[fmt],[nlsparams]) Ejemplo: TO_NUMBER(‟23.5‟)=23.5

TO_DATE Convierte una cadena en una representación de fecha

TO_DATE (char,[fmt],[nlsparams]) Ejemplo: TO_DATE('23-02-10','YY-MM-DD')=10/02/23

TO_CHAR Convierte un numero o fecha en un Varchar2

TO_CHAR (numero|fecha,[fmt],[nlsparams]) Ejemplo: TO_CHAR(SYSDATE,'MM-DD-YY')=‟08-02-10‟ TO_CHAR(253.2) = „253.2‟

Dónde fmt, corresponde a un modelo de formato de fecha. En Oracle los elementos de este formato son:

TO_NUMBER TO_DATE

TO_CHAR TO_CHAR

Page 39: Manual Oracle 10g

39

Elemento Descripción

YYYY Año completo MM Dos dígitos del mes MONTH Nombre del mes MON Mes abreviado en 3 letras DY Día de la semana abreviado en 3 letras DAY Nombre del día de la semana DD Día del Mes en 2 dígitos DDD Día del año WW o w Semana del año o mes

Funciones Generales Este tipo de funciones traban con cualquier tipo de dato y son utilizadas como para el manejo de excepciones. La lista de funciones es la siguiente:

Función Descripción Sintaxis NVL Convierte un valor NULL c un nuevo

valor NVL(expresion1, expresion2) Ejemplo: NLV(comisión,0) NVL(fecha_nacimiento,‟01-JAN-98‟) NVL(puesto, ‟Sin puesto‟)

NVL2 Si la espresión1 no es nula, regresa la espresión2, pero si la expresión1 es nula se regresa la expresión3

NVL2(expresion1, expresion2, expresion3) Ejemplo: NVL2(comisión,comisión+100,0)

NULLIF Compara dos expresiones y regresa nulo su son iguales o la primera expresión si no son iguales

NULLIF(expresion1, expresion2) Ejemplo: NULLIF(salario, bono)

COALESCE Regresa el primer valor no nulo de la lista

COALESCE(expresion1, expresion2, …, expresionN) Ejemplo: COALESCE(comisión, salario, 10)

Page 40: Manual Oracle 10g

40

4.3.4 Funciones de múltiple renglón Las funciones que utilizan una entrada de múltiples renglones para obtener un solo resultado también se conocen como funciones de agregación o agrupación ya que por su naturaleza permiten manipular un grupo de datos y devolver un solo resultado.

La sintaxis para emplear este tipo de funciones es de la siguiente forma:

Como puede apreciarse las funciones de agrupación se deberán colocan en la cláusula SELECT.

Page 41: Manual Oracle 10g

41

También debe notarse que aparece una nueva cláusula llamada Group by, misma que puede o no ser empleada según se requiera afectar a un grupo o grupos de datos. Dado que es fácil incurrir en ciertos errores al momento de agrupar se recomienda hacer uso de la siguiente regla: Si el enunciado SELECT contiene columnas que no están afectadas por alguna función de agrupación, se deberá agregar la cláusula GROUP BY y listar en este renglón todas las columnas que no están afectadas por alguna función de agrupación. Por ejemplo:

Las funciones de agrupación que Oracle dispone son las siguientes:

Función Descripción Sintaxis AVG Obtiene el promedio e ignara valores

nulos AVG([Distinct | All] n ) Ejemplo: AVG(salario)

COUNT Cuenta el número de renglones COUNT({* [| Distinct | All ] expresion}) Ejemplo: COUNT(*) COUNT(id_job) COUNT(Distinct(last_name))

MAX Obtiene el valor máximo, ignora los nulos

MAX([Distinct | All] expresion ) Ejemplo: MAX(salario) MAX(Fecha)

MIN Obtiene el valor mínimo, ignora los nulos

MIN([Distinct | All] expresion ) Ejemplo: MIN(salario) MIN(Fecha)

SUM Obtiene la suma de valores e ignora los nulos

SUM([Distinct | All] expresion ) Ejemplo: SUM(salario)

Page 42: Manual Oracle 10g

42

Excluyendo grupos de resultados En ocasiones es necesario delimitar los grupos de datos que se obtienen de las agrupaciones, es decir, es probable que de un grupo que estén aplicando agrupaciones solo se requieran algunas de ellas, en SQL se utiliza la cláusula HAVING con este propósito. La sintaxis de esta cláusula se muestra a continuación:

Visto a modo de ejemplo:

Page 43: Manual Oracle 10g

43

Tema V Obtención de datos de Múltiples Tablas

5.1 Resultados Al terminar este capítulo el participante será capaz de estructurar enunciados de selección de datos que accedan a más de una tabla, podrá identificar los datos que usualmente no se pueden obtener con las intersecciones o uniones de tablas habituales.

5.2 Introducción El algunas ocasiones es necesario obtener información de más de dos tablas, o se requiere complementar la información relacionada los datos de distintas tablas, para estos casos se hace uso de intersecciones entre tablas.

5.3 Obteniendo datos de distintas tablas En capítulos anteriores se ha visto que el enunciado SELECT ayuda en la obtención y desplegado de los datos contenidos en alguna tabla. Ahora se verá como este enunciado con ayuda de índices permite unir varias tablas para obtener información complementaria. Este tipo de unión de tablas no es más que una combinación de datos, para obtenerla se necesita tener vinculadas algunos renglones entre tablas dependientes, esto se logra mediante la incorporación de Llaves Primarias (PK) y Llaves Foráneas (Fk). Gráficamente esta relación puede verse como se muestra en el siguiente diagrama:

Page 44: Manual Oracle 10g

44

5.3.1 Uniendo dos o más tablas El unir varias tablas se vuelve una tarea útil cuando se necesitan ver los datos que se almacena en varias de ellas. Por ejemplo, la tabla employees contiene información de los empleados y del número de departamento donde están, pero no se conocen los nombres de dichos departamentos. Si deseamos obtener los datos de los empleados y del departamento deberemos unir las tablas utilizando el ID del departamento. Es decir tendremos que estructurar un enunciado con la siguiente sintaxis:

También es importante considerar que al recuperar datos de varias tablas, de forma explícita (como en la gráfica anterior), es necesario que se identifique explícitamente a qué tabla pertenece cada columna a fin de evitar errores de ambigüedad (Esto es importante cuando las tablas contienen columnas con el mismo nombre). Al igual que en el caso del uso de alias en las columnas, es posible asignar un alias a una tabla con el fin de acelerar la escritura de los enunciados así como el de mantenerlos legibles. El uso de alias y su sintaxis puede verse en la siguiente firgura:

Page 45: Manual Oracle 10g

45

Observe el uso de alias en las tablas para identificar de forma explícita las columnas por tabla. Un alias de tabla se utiliza, en lugar del nombre de la tabla, para simplificar y reducir el tamaño del código SQL. Importante: Si las columnas con el mismo nombre tienen tipos de datos diferentes, se produce un error.

Page 46: Manual Oracle 10g

46

Ejemplos: SELECT employee_id, last_name, first_name, department_id,

department_name, manager_id

FROM employees

NATURAL JOIN departments;

SELECT e.employee_id, e.last_name, e.first_name, e.manager_id,

department_id,

d.department_name, d.manager_id FROM employees e

JOIN departments d USING (department_id);

5.3.2 Tipos de uniones En SQL se han clasificado las uniones de tablas de la siguiente forma:

Producto Cartesiano

Equijoins

Non Equijoins

Outer joins Producto Cartesiano Es la unión que resulta de omitir las condiciones o relaciones de igualdad entre dos o más tablas. Este tipo de uniones resulta ser de un costo computacional alto debido a que los registros involucrados se combinarán entre las tablas mencionadas creando un conjunto de datos que muchas veces no tiene sentido.

Page 47: Manual Oracle 10g

47

Equijoins Son las uniones entre tablas que utilizan las llaves primarias y foráneas para realizar la combinación de registros. Este es el tipo de uniones más comunes dentro del modelo relacional de bases de datos.

No Equijoins Son las combinaciones o uniones de tablas que no necesariamente utilizan las llaves primarias y foráneas para realizar la combinación de registros, en su lugar utilizan operadores de comparación para obtener el conjunto de resultados. Los operadores que utiliza el no quijoin son: <=, >= y el BETWEEN

Page 48: Manual Oracle 10g

48

Outer Joins La combinación de conjuntos como los joins tienen un detalle, si un renglón no satisface con la condición de unión este no se mostrará en los resultados. Estos renglones comúnmente se conocen como renglones perdidos, pues a pesar de que existen en las tablas estos no pueden visualizarse. En la realidad estos renglones perdidos suelen ser necesarios en la generación de reportes, por ello Oracle ha dispuesto de un operador para que estos renglones puedan ser visualizados y mostrados al ejecutarse una selección de datos. Los outer joins, se clasifican en dos categorías: Outer join porla izquierda, el Outer Join por la Derecha y el Full Outer Join. La sintaxis de cada uno de estos se muestra a continuación:

Page 49: Manual Oracle 10g

49

Page 50: Manual Oracle 10g

50

Tema VI Subconsultas

6.1 Resultados Al culminar este capítulo el participante será capaz de describir y reconocer los problemas que pueden solucionarse con una subconsulta o subquery. Y será capaz de distinguir los distintos tipos de Subconsultas o subquerys.

6.2 Introducción Supongamos que nos enfrentamos a la siguiente situación: se nos ha pedido generar la lista de aquellos empleados que ganan más que la empleada llamada Smirna. Para resolver este problemas se nota que es importante conoce cuánto gana Smirna, una vez obtenido su salario será posible identificar quienes son los que ganan más que esta cantidad. Es así que este tipo de problemas donde se requiere conocer o identificar un valor desconocido para que al usarlo se puedan obtener datos adicionales se le conocen como problemas de subconsultas.

6.3 Subconsultas

6.3.1 Como identificar las subconsultas. Para identificar cuando podemos usar subconsultas, bastará con iniciar con un análisis previo del problema y trataremos de dividirlo en dos secciones, que llamaremos consulta principal (Query principal) y la subconsulta (subquery). Para el ejemplo con que se inicio en el capítulo podemos verlo de la siguiente manera:

Page 51: Manual Oracle 10g

51

6.3.2 Sintaxis de las subconsultas

Como puede observarse, una subconsulta es un enunciado SELECT que está incluido en otro enunciado SELECT. Este tipo de enunciados son muy útiles cuando los datos que se requieren seleccionar dependen de la condición aplicada a otra tabla. La sintaxis para usar una subconsulta es la siguiente:

Donde expresión será la condición que deberá cumplirse de acuerdo al operador que se esté utilizando. En SQL las subconsultas manejan distintos operadores de acuerdo al tipo de subconsultas que se vaya a generar, estos operadores como puede apreciarse en la ilustración anterior se dividen en Operadores de un Registro y de Múltiples registros. Esta clasificación de operadores corresponde a su vez de acuerdo al tipo de subconsulta que de vaya a implementar, en SQL se tienen las siguientes categorías de subconsultas:

Page 52: Manual Oracle 10g

52

La regla de oro que debe seguirse en el uso de las subconsultas es la siguiente: Utilizar operadores de un solo registro para subconsultas de un solo registro y usar operadores de varios registros para subconsultas de múltiples renglones. Algunas recomendaciones que se deben tomar en cuenta al momento de usar subconsultas son las siguientes:

Page 53: Manual Oracle 10g

53

Tema VII Manipulación de Datos

7.1 Resultados El participante será capaz de describir los enunciados del tipo DML, insertara datos a objetos tipo tabla, actualizará y borrara registros, combinará tablas y aprenderá el control de transacciones.

7.2 Introducción Los enunciados DML son la parte estática de SQL. Estos enunciados se utilizan para cuando se desea agregar, actualizar o borrar registros de la base de datos. Al conjunto de enunciados DML le conoceremos como una transacción y a lo largo de este capítulo aprenderemos como estructurar enunciados DML y cómo podemos controlar su ejecución a través de transacciones.

7.3 Lenguaje de Manipulación de Datos

7.3.1 Enunciados DML

Los enunciados de lenguaje de manipulación de datos (DML) son los siguientes:

INSERT: Permite agregar un registro

UPDATE: Permite actualizar los datos de un registro

DELETE: Permite eliminar registros de una tabla

Estos tres enunciados permiten en realidad la gestión de información dentro de una base de datos. A continuación se dará a conocer su sintaxis y sus reglas de uso.

7.3.2 Enunciado INSERT La sintaxis de este enunciado es la siguiente:

Page 54: Manual Oracle 10g

54

En los casos donde no sea necesario registrar todos los datos, el enunciado puede modificarse de la siguiente forma para que solo se registren algunas columnas:

7.3.3 Enunciado UPDATE Este enunciado permite la actualización de los datos de la base de datos, su sintaxis básica es la siguiente:

Page 55: Manual Oracle 10g

55

7.3.4 Enunciado DELETE Este enunciado permite eliminar un registro de una tabla, su sintaxis es la siguiente:

Es importante señalar que se deberá tener cuidado al eliminar los registros de las bases de datos, pues esta acción no permite deshacer la acción realizada de manera natural. Cuando se realice la eliminación de los datos, es importante considerar que si se infringen las reglas de integridad referencial se originará un error de integridad al realizar la acción de eliminación.

7.3.5 Enunciado MERGE Este enunciado permite actualizar o insertar un renglón de manera condicional en una tabla. Este enunciado es el resultado de combinar los enunciados Insert y Update al mismo tiempo, sin embargo es importante señalar que este es un enunciado determinístico y que no será posible actualizar el mismo renglón en múltiples ocasiones con este enunciado.

Page 56: Manual Oracle 10g

56

La sintaxis del enunciado MERGE es la siguiente:

7.3.6 Transacciones en la Base de Datos El manejador de base de datos de Oracle tiene como una de sus principales tareas el de asegurar la consistencia de las transacciones que se realizan en la base de datos. Las transacciones por su parte dan flexibilidad y control cuando se cambian los datos, asegurando la consistencia de los datos si el proceso del usuario o el sistema llega a fallar. En realidad una transacción consiste en el conjunto de enunciados DML que pueden realizar cambios sobre los datos. Una transacción inicia cuando se detecta el primer enunciado DML y termina cuando algo de lo siguiente ocurre:

Se uso un enunciado COMMIT o ROLLBACK

Se ejecuto un enunciado DDL como CREATE

Se utilizo un enunciado DCL

Si el usuario termino sesión

Si el equipo o el sistema operativo falla En Oracle existe un sistema explícito de control de transacciones, mismo que permite que el usuario o programador determine cada cuando ejecutar o cancelar una transacción. Visualmente este sistema se ve como lo muestra la siguiente figura:

Page 57: Manual Oracle 10g

57

Dónde se emplean los siguientes comandos:

Función Descripción COMMIT Termina la transacción actual realizando

todos que los cambios temporales se realicen permanentemente

SAVEPOINT name Coloca un punto de retorno

ROLLBACK Termina la transacción actual descartando los cambios hechos

ROLLBACK TO SAVEPOINT name

Regresa la transacción a un punto específico de retorno, descarta los cambios hechos y puntos de retorno creados antes del punto de retorno.

COMMIT

Transacción

DELETE

SAVEPOINT A

INSERT

UPDATE

SAVEPOINT B

INSERT

Tiempo

ROLLBACK al SAVEPOINT B

ROLLBACK al SAVEPOINT A

ROLLBACK

Page 58: Manual Oracle 10g

58

Tema VIII Administración de Bases de Datos

8.1 Resultados El participante será capaz de describir los objetos principales de una base de datos, creará tablas, conocerá los tipos de datos que pueden emplearse, eliminara y destruirá objetos de tipo tabla.

8.2 Introducción Una base de datos de Oracle puede contener múltiples estructuras de datos. Cada estructura deberá estar delimitada durante la fase de diseño de la base de datos. A lo largo de este capítulo se abordará la descripción de los objetos principales de las bases de datos y se verá la forma de administrarlos en el servidor de base de datos.

8.3 Objetos de la Base de Datos

8.3.1 Objetos básicos de una Base de Datos Los objetos principales de una base de datos son:

Tablas: Encargadas de almacenar los datos.

Vistas: Subconjunto de datos referentes a una o más tablas

Secuencia: Generador numérico de identificadores

Índice: Provee de alto desempeño a algunas consultas de SQL

Sinónimo: Permite colocar nombres alternos a los objetos

8.3.2 Creación de Tablas

Antes de crear un objeto de Tipo Tabla en la base de datos es importante considerar las siguientes reglas al momento de asignarles un nombre:

Deben comenzar con una letra

Su nombre deberá estar entre 1 y 30 caracteres de largo

Deberán contener los caracteres A-Z, a-z. 0-9, _ , $ y el # únicamente.

No se podrá utilizar un mismo nombre para dos objetos

Su nombre no deberá ser una palabra reservada. Para poder crear una tabla, será necesario utilizar el enunciado CREATE TABLE, que pertenece a la familia DCL (Data Control Language)

Page 59: Manual Oracle 10g

59

La sintaxis de este enunciado es la siguiente:

8.3.3 Las tablas en la base de datos En Oracle se pueden distinguir dos tipos de tablas:

Tablas del usuario: Es una colección de tablas creadas por el usuario que almacenan información

Diccionario de Datos: Es una colección de tablas que son creadas y en mantenimiento por el servidor de Oracle, contienen información de la base de datos. El usuario propietario es SYS.

Oracle permite la consulta del diccionario de datos que pertenece a un usuario utilizando los siguientes objetos en un enunciado de selección de registros:

USER_TABLES

USER_OBJECTS

USER_CATALOG o CAT Un ejemplo sería: SELECT * FROM CAT;

Page 60: Manual Oracle 10g

60

8.3.4 Tipos de Datos Oracle dispone de los siguientes tipos de datos para crear las estructuras de tipo tabla en la base de datos:

Tipo de Dato Descripción VARCHAR2(size) Carácter de longitud variable

CHAR(size) Carácter de longitud fija

NUMBER(p,s) Número de longitud variable, p= precisión, s= escala

DATE Valor de fecha y hora

TIMESTAMP Fecha con fracción de segundos

LONG Cadena de longitud variable hasta 2 GB

CLOB Carácter hasta de 4 GB

RAW (size) Dato binario de longitud dada por size, eñ valor máximo de size es de 2000

LONG RAW Dato binario de longitud variable hasta de 2GB

BLOB Dato binario hasta de 4 GB

BFILE Dato binario almacenado en un archivo externo hasta de 4GB

ROWID Un número en base 64 que representa la dirección única de cada registro en su tabla

8.3.5 Eliminación de una Tabla Si se desea eliminar una tabla de la base de datos se deberá ejecutar el comando DROP TABLE para que el objeto quede eliminado del esquema. Es importante recordar que al momento de eliminar una tabla, su información se pierde al mismo tiempo que los índices que esta haya podido contener. La sintaxis del enunciado es la siguiente:

Page 61: Manual Oracle 10g

61

Algunas consideraciones al momento de eliminar una tabla son las siguientes:

Ejecutar este enunciado si se desea eliminar todos la información de la tabla

Las vistas y sinónimos relacionados a la tabla quedan en el esquema pero serán inválidos por hacer referencia a un objeto que ya no existe

Si existiera alguna transacción pendiente esta se finaliza con COMMIt Otra alternativa para eliminar el contenido de una tabla es el comando TRUNCATE, el cual solo elimina la información de la tabla dejando su estructura en el esquema. Al utilizar este comando no es posible deshacer la transacción por lo que es vital mantener cuidado de ejecutar este comando. La sintaxis de TRUNCATE es la siguiente:

8.3.6 Validaciones en el servidor En Oracle existe una objeto llamado constraint que permite prevenir la entrada de datos inválidos a las tablas. Los constraints sirven para:

Forzar el cumplimiento de reglas a nivel de tabla cuando se inserta, se actualiza o se borra información

Previene el borrado de la tabla si esta tiene dependencias con otras tablas

Page 62: Manual Oracle 10g

62

Los tipos de constraints que maneja Oracle 10g son los siguientes:

Constraint Descripción NOT NULL Especifica que la columna no puede tener valores nulos

UNIQUE Especifica que una columna o combinación de columnas deben tener valores únicos para todos los renglones de la tabla

PRIMARY KEY Identifica como único a cada renglón de la tabla

FOREING KEY Establece una referencia foránea con otra tabla y fuerza a una relación entre tablas

CHECK Especifica una condición que debe ser cumplida

8.3.7 Creación de Vistas Una vista es una tabla lógica que ha sido creada a partir de otra tabla o vista. En ella no se contiene datos como tales, es más bien como una representación de una ventana a través de la cual podemos visualizar los datos. El uso de las vistas tiene ciertas ventajas tales como:

Restringen el acceso a los datos, porque solo muestran datos selectivos

Pueden ser utilizadas para realizar subconsultas y descomponer enunciados complicados

Proveen independencia a los programadores Sin embargo es importante considerar que una vista al ser un objeto virtual este queda restringido a lo siguiente:

No es posible hacer uso de enunciados DML en una vista

8.3.8 Otros Objetos de la base de datos La secuencias Una secuencia es un objeto que permite generar de forma automática números únicos, de ahí que casi siempre se destine a crear llaves primarias en las tablas. La creación de estos objetos trae beneficios contiguos ya que disminuyen el trabajo a los programadores y la asignación de llaves primarias se vuelve más eficiente. Dentro de las secuencias se utilizan dos Pseudocolumnas llamadas:

NEXTVAL: Permite obtener el siguiente valor de la secuencia

CURVAL: Obtiene el valor actual de la secuencia

Page 63: Manual Oracle 10g

63

Índices Un índice es un objeto del esquema que puede aumentar la velocidad de extracción de los registros mediante el uso de apuntadores. También reducen la lectura y escritura al disco duro pues hacen uso de un acceso de ruta crítica. Son independientes de las tablas que indexan y el servidor automáticamente les da mantenimiento para mantener en óptimo funcionamiento la base de datos. Sinónimos Para hacer referencia a una tabla que es propiedad de otro usuario se requiere colocar como prefijo el nombre de la tabla con el nombre del propietario, es decir se debe calificar al objeto para poder accederlo. El uso de sinónimos elimina esta tarea de calificar a los objetos, haciendo que el desarrollador tenga una referencia sencilla a objetos que no son de su propiedad.

8.3.9 Control de Acceso a la Base de datos Como administrador de la base de datos, es preciso mantener un control de seguridad que vigile el acceso a la base de datos. En esta versión será posible mantener el control mediante:

El control de acceso a la base de datos

Dando acceso a objetos específicos de la base de datos

Creando sinónimos a los objetos de la base de datos La seguridad de la base de datos esta clasificada en dos grandes categorías: seguridad del sistema y seguridad de los datos. La primera se refiere al control de acceso a la base de datos y al sistema mediante el control de usuarios y contraseñas, en cambio la segunda se refiere a la seguridad sobre los objetos de la base de datos y las acciones que los usuarios pueden hacer en ellos. De manera que Oracle refiere a la seguridad mediante el uso de:

Privilegios: Son los permisos autorizados para ejecutar ciertas instrucciones de SQL. El más alto nivel se refiere al DBA de la base de datos.

Esquemas: Es el conjunto de objetos como tablas, vistas y secuencias, mismo que es propiedad de un usuario. El esquema lleva el mismo nombre que el del usuario propietario.

Page 64: Manual Oracle 10g

64

VI. CONCLUSIÓN FINAL

Oracle Database 10g, resulta ser uno de los administradores de base de datos relacionales más robustos y vanguardistas, su aplicación en las actividades diarias agilizan la gestión de datos y manejo de la información. Oracle 10G, cuenta entre sus principales características, la posibilidad de auto administrarse, organizarse en clusters y manejar la administración de su almacenamiento a través de la tecnología Grid Computing.

Page 65: Manual Oracle 10g

65

VII. GLOSARIO

TÉRMINO DEFINICIÓN

aplicación de base de datos

Un conjunto de objetos que puede incluir las tablas, las consultas, los formularios, los informes, las macros y los módulos de código diseñados para trabajar conjuntamente para facilitar el uso de una base de datos. Generalmente, una aplicación de base de datos se implementa en un grupo de usuarios.

cadena de longitud cero

Una cadena que no contiene ningún carácter. Se puede usar una cadena de longitud cero para indicar que se sabe que no existe un valor para un campo. Para especificar las cadenas de longitud cero, se escribe un par de comillas dobles sin espacio entre ellas ("").

cadena o instrucción SQL

Una expresión que define un comando SQL, como SELECT, UPDATE o DELETE, e incluye cláusulas como WHERE y ORDER BY. Las cadenas o instrucciones SQL suelen usarse en las consultas y en las funciones de agregado.

campo calculado

Un campo definido en una consulta que muestra el resultado de una expresión en vez de mostrar los datos almacenados. El valor se vuelve a calcular cada vez que cambia un valor de la expresión.

campo de columna

Un campo en el área de columna de la vista Tabla dinámica. Los elementos de los campos de columna aparecen en la parte superior de una lista de tabla dinámica. Los campos de columna internos son los más próximos al área de detalle; los campos de columna externos se muestran por encima de los campos de columna internos.

campo de datos Un campo que contiene datos resumidos en la vista Tabla dinámica o Gráfico dinámico. Un campo de datos suele contener datos numéricos.

campo de totales

Un campo que resume datos del origen del registro subyacente. Un campo de totales puede usar una función de resumen, por ejemplo, Suma o Recuento, o una expresión para calcular los valores de resumen.

campo Null Un campo que contiene un valor Null. Un campo Null no es igual que un campo que contiene una cadena de longitud cero (" ") o un campo con un valor de 0.

caracteres comodín

Caracteres que se usan en las consultas y expresiones para incluir todos los registros, nombres de archivo u otros elementos que comiencen con caracteres específicos o que coincidan con un determinado modelo.

clave externa Uno o más campos de tabla (columnas) que hacen referencia al campo de clave principal o a campos de otra tabla. Una clave externa indica cómo se relacionan las tablas.

Page 66: Manual Oracle 10g

66

TÉRMINO DEFINICIÓN

clave principal

Uno o más campos (columnas) cuyos valores identifican cada registro de una tabla de forma única. Una clave principal no puede permitir valores Null y siempre debe tener un índice único. Una clave principal se usa para relacionar una tabla con claves externas de otras tablas.

columna Una ubicación dentro de una tabla de base de datos que almacena un tipo de datos en particular.

configuración regional El conjunto de información que corresponde a un determinado idioma y país.

conjunto de registros El nombre colectivo que se le da a una tabla, objetos Recordset de tipo conjunto de registros dinámicos e instantánea, que son conjuntos de registros que se comportan como objetos.

consulta

Una pregunta acerca de los datos almacenados en las tablas o una solicitud para realizar una acción en los datos. Una consulta puede unir los datos de varias tablas para que sirvan como origen de datos para un formulario o informe.

diagrama de base de datos

Representación gráfica de cualquier parte del esquema de una base de datos. Puede ser una imagen completa o parcial de la estructura de la base de datos. Incluye tablas, las columnas que éstas contienen y las relaciones entre las tablas.

Documentador de base de datos

Una herramienta que genera un informe con información detallada acerca de los objetos en una base de datos.

eliminación en cascada

Para las relaciones que exigen la integridad referencial entre tablas, la eliminación de todos los registros relacionados en la tabla o las tablas relacionadas cuando se elimina un registro en la tabla principal.

exportar

Copiar datos y objetos de base de datos en otra base de datos, archivo de hoja de cálculo o formato de archivo, de manera que otra base de datos u otro programa pueda usar los datos o los objetos de base de datos. Se pueden exportar datos a diferentes bases de datos, programas y formatos de archivo compatibles.

función

Una consulta que toma los parámetros de entrada y devuelve un resultado como un procedimiento almacenado. Tipos: escalar (de varias instrucciones; devuelve un valor), en línea (una instrucción; un valor de tabla que se puede actualizar) y tabla (de varias instrucciones; valor de tabla).

función de agregación Una función como Suma, Recuento, Promedio o Var que se usa para calcular totales.

función definida por el usuario

Una consulta que toma los parámetros de entrada y devuelve un resultado de forma similar a un procedimiento almacenado. Tipos: escalar (de varias instrucciones; devuelve un valor), en línea (una instrucción; un valor de tabla que se puede actualizar) y tabla (de varias instrucciones; valor de tabla).

índice Una característica que acelera la búsqueda y la ordenación en una tabla según los valores de las claves y que exige la unicidad

Page 67: Manual Oracle 10g

67

TÉRMINO DEFINICIÓN

en las filas de una tabla. La clave principal de una tabla se indiza automáticamente. Algunos campos no se pueden indizar debido a su tipo de datos, por ejemplo objeto OLE o datos adjuntos.

índice único

Un índice que se define mediante la especificación de la propiedad Indizado de un campo en Sí (sin duplicados). Un índice único no permitirá entradas duplicadas en el campo indizado. Al configurar un campo como clave principal, el campo se define automáticamente como único.

integridad referencial Las reglas que se siguen para mantener las relaciones definidas entre tablas al agregar, actualizar o eliminar registros.

normalizar

Minimizar la duplicación de información en una base de datos relacional mediante el diseño eficaz de la tabla. Para normalizar la base de datos, se puede usar el asistente Analizador de tablas.

Null

Un valor que se puede especificar en un campo o usar en expresiones o consultas para indicar que faltan datos o que los datos son desconocidos. En Visual Basic, la palabra clave NULL indica un valor Null. Algunos campos, como los campos de clave principal, no pueden contener un valor Null.

operador de comparación

Un operador que se usa para comparar dos valores o expresiones. Por ejemplo, < (menor que), > (mayor que) y = (igual a).

permisos Un conjunto de atributos que especifica qué tipo de acceso tiene un usuario a los datos u objetos de una base de datos.

relación Una asociación que se establece entre campos comunes (columnas) de dos tablas. Puede ser una relación uno a uno, uno a varios o varios a varios.

relación de varios a varios

Una asociación entre dos tablas en la que un registro de ambas tablas puede estar relacionado con muchos registros de la otra tabla. Para establecer una relación varios a varios, se debe crear una tercera tabla y agregarle los campos de clave principal de las otras dos tablas.

relación uno a uno

Una asociación entre dos tablas en la que el valor de la clave principal de cada registro de la tabla principal corresponde al valor del campo o los campos concordantes de un solo registro de la tabla relacionada.

relación uno a varios

Una asociación entre dos tablas en la que el valor de la clave principal de cada registro de la tabla principal corresponde al valor del campo o los campos concordantes de varios registros de la tabla relacionada.

subconsulta Una instrucción SQL SELECT dentro de otra consulta de selección o acciones.

tabla

Un objeto de base de datos que almacena los datos en registros (filas) y campos (columnas). Generalmente, los datos son sobre una categoría determinada de cosas, como empleados o pedidos.

validación El proceso de comprobar si los datos especificados cumplen

Page 68: Manual Oracle 10g

68

TÉRMINO DEFINICIÓN

ciertas condiciones o limitaciones.

valor predeterminado Un valor que se escribe automáticamente en un campo o control cuando se agrega un nuevo registro. Puede aceptar el valor predeterminado o puede especificar un valor para reemplazarlo.

Page 69: Manual Oracle 10g

69

VIII. BIBLIOGRAFÍA Hernandez, Michael J. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, Second Edition. Addison-Wesley Professional. 2003. Fleming, Candace C. von Halle, Barbara. Handbook of Relational Database Design. Addison-Wesley Professional. 1989. Riordan, Rebecca M. Designing Effective Database Systems. Addison-Wesley Professional. 2005. Bryla Bob; Loney Kevin Oracle Database 10g Manual del administrador, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S.A.U. 2009 http://www.oracle.com

Page 70: Manual Oracle 10g

70

IX. DEL AUTOR

Establecida por decreto gubernamental el 21 de marzo de 1956 –128 años después de su fundación como Instituto Literario– la Universidad Autónoma del Estado de México está constituida actualmente por 19 facultades, una escuela profesional, 8 planteles de la Escuela Preparatoria, 8 unidades académicas desconcentradas, 12 centros de investigación y 70 escuelas incorporadas. En este universo de trabajo, la función docente comprende la enseñanza de 47 carreras profesionales y 2 carreras técnicas, además del bachillerato, que tiene dentro de la Universidad una larga tradición. En el nivel de estudios de posgrado existen 84 programas, 37 de ellos de especialización, 36 de maestría y 9 de doctorado. Los planteles de la Escuela Preparatoria están ubicados en Toluca, Tenancingo, Texcoco y Amecameca, en tanto que las unidades profesionales funcionan en Temascaltepec, Atlacomulco, Amecameca, Zumpango, Texcoco, Valle de México, Ecatepec y Valle de Chalco. Las escuelas incorporadas –7 de las cuales ofrecen estudios profesionales y todas bachillerato– están distribuidas en todo el estado. La universidad atiende directamente una matrícula de 38,000 estudiantes, de los cuales 15,035 cursan bachillerato, 21,037 licenciaturas y 1,928 posgrado. En el sistema incorporado están inscritos 26,129 alumnos, por lo cual la matrícula global es de 64,130 estudiantes. En las escuelas y facultades laboran 694 profesores de tiempo completo, 187 de medio tiempo y 2,570 de asignatura, además de 186 técnicos académicos y 20 investigadores de tiempo completo. Otras modalidades de enseñanza están siendo exploradas actualmente, en función de la demanda de ingreso, que supera la oferta. El sistema de educación a distancia se estableció en 1996. En el área de investigación, existen 339 proyectos registrados, que se realizan en facultades y centros de investigación. La nómina actual es de 196 investigadores, de los cuales, 129 tienen estudios de maestría y 46 doctorado, y 59 pertenecen al Sistema Nacional de Investigadores. En 1998, 73 proyectos se reportaban terminados y 266 en proceso. La mayoría son financiados con recursos propios y algunos tienen financiamiento externo. El centro de investigación más importante es el Centro Interamericano de Recursos del Agua –CIRA– que en su primera etapa de construcción absorbió recursos del orden de 27 millones de pesos. En el área de difusión cultural, existen en la Universidad 47 grupos y 19 solistas que anualmente participan en 850 actividades internas y 620 externas, en promedio anual, además de que el Centro de Actividades Culturales se imparten diferentes cursos y disciplinas artísticas. En 1996 se creó la licenciatura en Artes Plásticas, que en el futuro será el núcleo de una escuela profesional. La Universidad edita un promedio anual de 50 libros y sostiene dos revistas, una de divulgación cultural (La Colmena) y otra de divulgación científica (Ergo Sum), que han obtenido premios nacionales entre publicaciones de su género. El sistema bibliotecario de la Universidad posee un acervo de 320,882 libros y 23,025 revistas, con una biblioteca central, que data de 1897 y 48 unidades de información, 13 de ellas conectadas a Internet, en las escuelas y facultades. Tiene la Universidad un sistema de becas de escolaridad, que en 1997-98 benefició a 13,952 estudiantes de bachillerato y licenciatura, y de becas económicas, que en el mismo año fueron 2,631. En la actualidad, la cifra de egresados de licenciatura es de 3,024 por año en el campus Toluca y de 439 en las unidades profesionales desconcentradas. El nivel de posgrado tiene 277 egresados de especialización y maestría. Aún no egresan doctores.

Page 71: Manual Oracle 10g

71

Las labores administrativas son desempeñadas por 2,497 empleados. Para ellos y para la comunidad académica existen 1,747 equipos de cómputo instalados en diferentes espacios. El promedio actual es de 44 computadoras por cada mil alumnos y de 54 por cada cien profesores. La Universidad se rige por una Ley que fue promulgada el 3 de marzo de 1992 y que sustituyó a la ley orgánica de 1956. Existe, además, desde 1996, el Estatuto Universitario.

Page 72: Manual Oracle 10g

72

X. ANEXO

A continuación se proporciona información relacionada con:

El Servicio Público

Bicentenario de la Independencia de México

Prevención Contra Adicciones para Servidores Públicos del Gobierno del Estado de

México

Equidad de Género

El Servicio Público

1. Servidor Público

Toda persona física que preste a una institución pública un trabajo personal subordinado de carácter

material o intelectual, o de ambos géneros, mediante el pago de un sueldo. Comprometiendo el máximo de

sus capacidades técnicas, profesionales y personales, a efecto de coadyuvar en el cumplimiento de los fines

del gobierno y sus instituciones, en beneficio de la sociedad.

La sociedad aspira llegar a tener servidores públicos con una nueva y verdadera vocación de cultura de

servicio, lo que significa asumir una conducta permanente ante el ciudadano y ante sí mismo de:

VOCACIÓN DE SERVICIO (Espíritu de servicio; Deseo de superación profesional y personal; Espíritu de

mejora continua; Alta auto estima; y Elevada capacidad de trabajo.

2. Trascendencia de la función pública

Las actividades que tiene encomendada la función pública, son de cumplirlas de tal forma que dejen un

precedente en beneficio a las necesidades de los ciudadanos, dentro de la historia de la sociedad y en

conjunto de nuestra entidad federativa y país. Tales que sean un ejemplo a seguir para otras sociedades.

3. Valores que orientan la actuación del servidor público

Legalidad Actuación apegada a leyes, reglamentos y normas.

Honradez Actuación libre de desvíos de cualquier naturaleza.

Vocación de servicio. Actuación diligente y cordial, atenta a necesidades y prioridades del

ciudadano.

Eficiencia y Eficacia Grado de cumplimiento de objetivos, programas, y metas con suficiencia,

calidad y racionalidad, en lo cualitativo y cuantitativo, para el usuario y la

administración pública.

Imparcialidad Actuación y decisiones apegadas a derecho y con equidad; sin

considerando a quien se pueda beneficiar o perjudicar.

Lealtad Actuación con compromiso de resguardo de la institucionalidad, orden

disciplinario e imagen.

4. Expectativas ciudadanas del servidor público

Los ciudadanos demandan no sólo transparencia en el uso de los fondos públicos, sino que estos se

conviertan efectivamente en beneficios sociales.

El ciudadano, usuario de los servicios públicos, exige que se le atienda con un buen trato de manera

expedita, con eficiencia y eficacia y, desde luego con honestidad. Es de esperar que este reclamo sea mayor

en los próximos años, a medida que la ciudadanía incremente su participación en el ejerció de la democracia

y sobre todo por estar consciente de que su contribución al erario público le da el derecho de demandar

servicios de calidad.

Page 73: Manual Oracle 10g

73

5. Retos y perspectivas del servidor público.

Dar respuesta a esta demanda ciudadana dentro del marco de las leyes que nos rigen, significa un

compromiso impostergable que solo podrá enfrentarse con la promoción de la nueva cultura de servicio,

que haga posible la preparación y disposición requeridas en el servidor público, para que esté en condiciones

de satisfacer las expectativas de la sociedad.

El reto es:

Que el servidor público oriente sus esfuerzos en razón de las necesidades del usuario, de

los servicios que le proporciona;

Que conozca de forma específica las demandas, requerimientos y expectativas de los

ciudadanos; y

Que se prepare para la función que realiza y se organice para servirles con eficiencia.

Profesionalización del servicio público:

Solo un servidor público profesional será capaz de proporcionar a la ciudadanía los servicios que demanda

con diligencia, honestidad, eficacia y eficiencia que ésta requiere. La profesionalización es un medio de

superación del servidor público, además de constituir un factor de permanencia productiva, ascenso y

promoción dentro del servicio público.

BICENTENARIO DE LA INDEPENDENCIA DE MÉXICO

En el sexenio 2005-2011, el Gobernador del Estado de México, Licenciado Enrique Peña Nieto, durante su

discurso de Toma de Protesta, ante la Legislatura Estatal, el día 15 de septiembre de 2005, manifestó que

gobernará a una entidad que ha dejado huella imborrable en la historia de los mexicanos, por su aportación

a las causas nacionales, por su vitalidad humana y porque es síntesis de los retos y oportunidades que

distinguen al México del tercer milenio.

Por lo anterior, se asumió el compromiso de cumplir con la responsabilidad histórica que nos corresponde a

los mexiquenses en el siglo XXI, exaltando el ejemplo de quienes hace 96 años, ofrendaron su vida por la

independencia que hoy disfrutamos; para ello, los tres poderes fueron convocados a actuar con la misma

visión que tuvieron los padres fundadores de la patria.

Conmemorar el Bicentenario de la Independencia Nacional, el 150 Aniversario de la Constitución de 1857 y

el Centenario de la Revolución Mexicana; practicando los ideales de libertad, igualdad y justicia social, por

los que lucharon las generaciones de mexicanos que dieron lustre y gloria al pasado.

El Programa del Bicentenario de la Independencia de México, que incluye como una de sus primeras

acciones promover que se le asigne a cada año del sexenio del Licenciado Enrique Peña Nieto, el nombre de

un prócer, como lo hizo la honorable legislatura, al decretar la denominación de cada año de la manera

siguiente:

2006: AÑO DEL PRESIDENTE DE MÉXICO BENITO PABLO JUÁREZ GARCÍA

Presidente de México en varias ocasiones, célebre por su frase “Entre los individuos, como entre las

naciones, el respeto al derecho ajeno es la paz”.

2007: AÑO DE LA CORREGIDORA DOÑA JOSEFA ORTIZ DE DOMÍNGUEZ

Digna representante del heroísmo de la mujer mexicana, que arriesgó su vida, libertad y familia por

entregarse a la causa de la insurgencia y luchar contra la opresión y sojuzgamiento español del pueblo

mexicano.

Page 74: Manual Oracle 10g

74

En 2007 también se conmemora el 150 Aniversario de la Constitución de 1857, ideario de igualdad y

libertad que nos legó la generación más brillante y heroica de la Reforma. Pilar y base para el surgimiento de

una nueva Nación.

2008: AÑO DEL PADRE DE LA PATRIA MIGUEL HIDALGO Y COSTILLA

Quien con su generoso sacrificio ofrendó su sangre por la causa de la libertad legándonos una nación digna e

independiente, movimiento emancipador del Ayuntamiento de la Ciudad de México, momento histórico, que

a decir de José María Luis Mora, abrió el debate sobre la independencia y los derechos políticos y civiles de

los mexicanos.

2009: AÑO DE JOSÉ MARÍA MORELOS Y PAVÓN, SIERVO DE LA NACIÓN

Honor al reformador social cuyo pensamiento y obra permanece en el tiempo y alienta al trabajo fecundo.

Fortaleció el movimiento insurgente al frente de los caudillos Ignacio López Rayón, Vicente Guerrero y

Guadalupe Victoria, para consolidar la independencia de México. Génesis del liberalismo insurgente

corriente ideológica que despertó la conciencia nacional para crear la patria mexicana, evolución del espíritu

público y difusión de ideas libertarias en las provincias.

2010: AÑO DEL BICENTENARIO DE LA INDEPENDENCIA DE MÉXICO

Honor y justicia a los hombres y mujeres que ofrendaron su vida en la lucha por la independencia para

legarnos patria y libertad. Centenario del inicio de la Revolución Mexicana: primer movimiento social en el

mundo que constituye las bases institucionales del México del siglo XXI.

2011: AÑO DEL CAUDILLO VICENTE GUERRERO

Consumador generoso y férreo de la Independencia de México, quien nos legó como premisa de

mexicanidad su palabra empeñada: “La Patria es primero”.

El Bicentenario de la Independencia es la premisa que nos alienta para construir el presente y el futuro, la

grandeza y el destino del Estado de México, con la participación de todos los sectores, cuya columna

vertebral sea el genio creador de los patriotas que conformaron para siempre, el rostro y el perfil de un

México independiente y libre.

Prevención contra Adicciones

para Servidores Públicos del Gobierno del Estado de México

¿Qué son las adicciones?

La adicción, farmacodependencia o drogadicción es un estado psicofísico causado por la interacción de un

organismo vivo con un fármaco.

Desde otro punto de vista, pero siguiendo el esquema evolutivo hacia la adicción, podemos describir cuatro

etapas progresivas de la enfermedad:

ETAPA 1: aprendiendo sobre el cambio de estado de ánimo. Los consumidores que se inician descubren

emocines.

ETAPA 2: en busca del cambio de estado de ánimo se comienza a buscar las sustancias que permitan esto a

través del uso planificado.

ETAPA 3: La búsqueda del giro anímico se vuelve una obsesión y única preocupación. Se pierde la

autoestima. Hay inicio de ideas suicidas.

ETAPA 4: Consume para sentirse como normal. Se puede culminar en acto suicida.

Page 75: Manual Oracle 10g

75

Se entiende por prevención laboral el conjunto de estrategias que una comunidad particular practica en su

entorno laboral para anticiparse a la aparición de fenómenos no deseados.

Existen razones de ser para los programas de prevención de adicciones en los lugares de trabajo.

Las disminuciones del rendimiento en el trabajo.

La posibilidad de pérdida del trabajo.

El costo de un Programa de Prevención de Adicciones es más rentable que el de enfrentar un

rendimiento continuamente deteriorado, con accidentes, ausentismo, etc.

A raíz de lo anterior, es importante entender que:

El uso indebido de alcohol y drogas crean problemas de salud.

Los lugares de trabajo pueden identificar y detectar en forma precoz la problemática adictiva.

Las políticas de empresas preventivas en adicciones son base fundamental para la actuación de

ayuda y tratamiento.

Las acciones de información, formación y capacitación en prevención de adicciones son

instrumentos esenciales para combatir la problemática.

Es de gran importancia la clasificación estrictamente confidencial relativa a la problemática adictiva

de un trabajador.

Es esencial la colaboración y las comisiones consultivas entre organizaciones y trabajadores para el

éxito de los programas de prevención.

Éstas son algunas de las señales que nos indican la existencia de riesgos de consumo de drogas y/o alcohol:

* Exagerada violencia.

* Dificultades en la comunicación.

* Falta de compañerismo y colaboración.

* Ruptura en las relaciones laborales.

* Respuestas intempestivas o inadecuadas.

* No respetar horarios.

* Cambios en el estado de ánimo.

* Retraimiento o incomunicación.

* Ausentismo reiterado.

* Exagerada inseguridad o autoexigencia.

* Temores infundados; idea de muerte.

* Actividades inadecuadas respecto a su rol laboral.

* Desgano, abulia, apatía.

* Ira y descontrol intenso.

* Síntomas físicos sin causa de enfermedad aparente.

* Por el contrario, debemos fomentar y promover:

* Diálogo.

* Muestras de sentimiento de pertenencia institucional.

* Actividades de recreación, como modelo de vida sana.

* Buena relación entre los compañeros y con los superiores.

* Fomentar la solidaridad.

* Compartir proyectos laborales.

* Gestos de respeto y tolerancia.

* Integración social.

Prevención en el hogar. La casa es el mejor lugar para proteger a los hijos de las drogas.

Page 76: Manual Oracle 10g

76

FACTORES DE PROTECCIÓN.

La comunicación permite alentar factores de protección contra las adicciones. Para comunicarnos

efectivamente podemos poner en práctica tres habilidades:

ESCUCHAR. Demuestra una actitud de acercamiento a tus hijos.

OBSERVAR. Observa las expresiones de tus hijos para saber si están relajados y sonríen, si están

nerviosos o tensos.

HABLAR. Asegúrate de reconocer y elogiar las acciones que tu hijo hace bien.

LÍMITES. Establece reglas claras para regular su conducta.

AUTOESTIMA

La autoestima es la opinión y la aceptación que tenemos de nosotros mismos así como reconocimiento de

nuestras cualidades y virtudes.

Todos somos diferentes. Acepta a tu hijo tal como es.

Ayúdalo a tener confianza en sí mismo. Enséñale a tu hijo a valorarse.

Tómalo en cuenta. Deja que tu hijo exprese sus opiniones y sus sentimientos.

El amor es algo que se dice y se manifiesta. Las muestras de afecto son indispensables para que tus hijos se

sientan queridos.

SITUACIONES DE RIESGO

Las siguientes son situaciones que ponen en riesgo a nuestra familia ante el consumo de cualquier sustancia

adictiva (alcohol, tabaco, drogas).

Cuando en la familia o en el grupo de amigos se consumen drogas.

Cuando en la casa se vive un clima de tensión y violencia.

Cuando tiene dificultad para decir no y poner sus propios límites.

Cuando tiene curiosidad o necesidad de vivir emociones fuertes, así como experiencias que ponen

en peligro su vida.

Cuando ha abandonado la escuela o el trabajo.

Cuando las drogas son fáciles de conseguir.

Aunque estas señales y situaciones por sí solas no necesariamente conducen a la

farmacodependencia, requieren de una atención especial y pronta por parte de los padres.

SÍNTOMAS (SEÑALES DE ALARMA)

Ante los siguientes síntomas es fundamental que los padres actúen de inmediato y con objetividad.

Cuando han perdido el interés en las actividades que antes le gustaban.

Cuando bajan su rendimiento en la escuela.

Cuando cambian de amigos con frecuencia y repentinamente.

Cuando muestran preferencias por otro tipo de actividades totalmente distintas.

Cuando cambian drásticamente de aspecto (ropa, peinado, etcétera).

Cuando cambian sus hábitos alimenticios; están tristes y aislados.

Cuando cambian drásticamente de estado de ánimo: pasan de la euforia al enojo, o

inexplicablemente se vuelven agresivos.

Cuando en casa se empiezan a perder objetos de valor o dinero.

Page 77: Manual Oracle 10g

77

Equidad de Género

Defender y promover los derechos humanos es defender y promover la equidad entre hombres y mujeres y

construir la igualdad en una sociedad más justa y democrática. Es por ello que el Gobernador del Estado de

México ha establecido un firme compromiso con la institucionalización de la perspectiva de género en todas

las actividades de defensa y promoción de los derechos humanos.

Los instrumentos internacionales de derechos humanos, especialmente de la Convención sobre la eliminación

de todas las formas de discriminación contra la mujer y de la Convención Interamericana para Prevenir,

Sancionar y Erradicar la Violencia Contra la Mujer así como los diversos instrumentos surgidos de las

conferencias mundiales sobre la mujer., surge el compromiso de Institucionalizar la perspectiva de género en

organismos públicos de derechos humanos en particular.

El Gobernador Lic. Enrique Peña Nieto, el 21 de noviembre de 2007, en el evento “Perspectivas de Género y

Políticas Públicas, instruyo:

Revisar el marco normativo, para poder adecuar las normas que validen la igualdad de la mujer y el hombre.

Dentro de cada una de las áreas de trabajo, reconocer con mayor agudeza los derechos de funcionarias y

servidoras públicas

Analizar dentro de las acciones y programas de las dependencias, cuáles son aquellas que pudieran orientar en

mejor medida para apoyar a las mujeres del Estado de México.

Es preciso iniciar este tema con la definición de sexo y género ya que frecuentemente se confunde sexo y

género ambos conceptos tienen significados distintos:

Sexo entendido como las diferencias biológicas, físicas y corporales entra la mujer y el hombre, que no

dependen de la voluntad personal.

Género a las diferencias sociales entre mujeres y hombres, partiendo de los roles, creencias y valores que se

les asignan culturalmente.

Equidad quiere decir que mujeres y hombres tienen derecho a acceder con justicia e igualdad al uso, control

y beneficio de los bienes y servicios de la sociedad, así como en la toma de decisiones en los ámbitos de la

vida social, económica, política, cultural y familiar y de género.

Así, pues, la Equidad de Género, es la aceptación de las diferencias entre los hombres y mujeres,

reconociendo la diversidad sin que ésta signifique razón para la discriminación, es aceptar que todas y todos

tenemos derechos y lo ideal es buscar un equilibro en el que ninguna de las partes se beneficie de manera

injusta en perjuicio del otro.

La igualdad entre los géneros es un derecho humano y es esencial para la consecución de los objetivos de

desarrollo. Se trata de un requisito indispensable para superar el hambre, la pobreza y las enfermedades.

Igualdad entre los géneros implica igualdad en la vida pública y política; El empoderamiento de las mujeres son

vitales no sólo para mejorar las condiciones económicas, sociales y políticas de la sociedad en su conjunto sino

para lograr una ciudadanía integral y una democracia más sólida.

Un elemento clave de la potenciación de la mujer es el ejercicio de un poder de decisión en pie de igualdad

con el hombre en los campos que afectan su vida (desde la familia hasta los niveles más altos do gobierno).

Aunque la representación d la mujer en los parlamentos nacionales ha ido aumentando a un ritmo estable

desde 1990, las mujeres siguen ocupando tan solo el 16% de los escaños en todo el mundo.

Page 78: Manual Oracle 10g

78

El Gobierno del Estado de México, aplica la transversalización de la equidad de género, es decir, la aplicación

de la perspectiva de género en la estructura y funcionamiento, desde la estructura numérica (cantidad de

mujeres y hombres), pasando por la forma de funcionamiento y especialmente por los procesos de toma de

decisiones.

También hace referencia a las medidas (programas, proyectos, etcétera) que el Gobierno del Estado de

México ejecuta o implementa hacia el exterior.. ¿En qué nos beneficia la transversalización de la equidad de

género en nuestro lugar de trabajo?

Nos sirve para construir una cultura de respeto, tolerancia y no discriminación, así como promover acciones

encaminadas hacia la igualdad de oportunidades entre mujeres y hombres.

Propicia un ambiente de trabajo más agradable donde mujeres y hombres trabajan juntos para lograr que el

Gobierno del Estado de México sea un ejemplo de institucionalización de la equidad de género.

La primera igualdad es la equidad

Víctor Hugo

El único Estado estable es aquel en que todos los ciudadanos

Son iguales ante la ley.

Aristóteles

Nota: Si desea contar con más información, sobre equidad de género consulta la siguiente página en Internet

www.sermam.cl/pmg/documentos.php