Oracle Spatial de la A a la Z - Unidad 1

13
1 Introducción a Oracle 11g OBJETIVOS Brindar una visión general acerca de una base de datos Oracle cubriendo los aspectos básicos, teóricos y físicos de bases de datos relacionales, implementación Oracle RDBMS y ORDBMS. Comprender la importancia de un buen modelado de datos, una introducción al lenguaje de consultas SQL, entre otros temas importantes que marcan los conceptos elementales que debe de ser manejados. La base de datos Oracle 11g provee muchas características útiles y poderosas. Muchas de estas características están incorporadas al nivel de SQL. SQL ha sido adoptado por la mayoría de los sistemas de gestión de base de datos relacionales (RDBMS). ANSI (American National Standards Institute) ha estado perfeccionando estándares del lenguaje SQL en los últimos 20 años. Oracle, como muchas otras compañías, ha adoptado el estándar ANSI de SQL y lo ha extendido para incluir un gran número de funcionalidades adicionales. El desarrollo de software para la gestión de información ha transitado por diferentes etapas, desde implementaciones sobre un sistema de archivos hasta las bases de datos relacionales y relacionales objeto. En la actualidad existen complejos sistemas de gestión de base de datos (DBMS), como Oracle 11g, los cuales proveen funcionalidades de almacenamiento y acceso eficiente a datos, y diversas otras funcionalidades relacionadas a la gestión integral de datos. 1 INTRODUCCIÓN

description

by Jorge Ulises Gonzalez Medina

Transcript of Oracle Spatial de la A a la Z - Unidad 1

Page 1: Oracle Spatial de la A a la Z - Unidad 1

1 Introducción a Oracle 11g

OBJETIVOS•Brindar una visión general acerca de una base de datos Oracle cubriendo los aspectos básicos, teóricos y físicos de bases de datos relacionales, implementación Oracle RDBMS y ORDBMS.•Comprender la importancia de un buen modelado de datos, una introducción al lenguaje de consultas SQL, entre otros temas importantes que marcan los conceptos elementales que debe de ser manejados.

La base de datos Oracle 11g provee muchas características útiles y poderosas. Muchas de estas características están incorporadas al nivel de SQL. SQL ha sido adoptado por la mayoría de los sistemas de gestión de base de datos relacionales (RDBMS).

ANSI (American National Standards Institute) ha estado perfeccionando estándares del lenguaje SQL en los últimos 20 años. Oracle, como muchas otras compañías, ha adoptado el estándar ANSI de SQL y lo ha extendido para incluir un gran número de funcionalidades adicionales.

El desarrollo de software para la gestión de información ha transitado por diferentes etapas, desde implementaciones sobre un sistema de archivos hasta las bases de datos relacionales y relacionales objeto.

En la actualidad existen complejos sistemas de gestión de base de datos (DBMS), como Oracle 11g, los cuales proveen funcionalidades de almacenamiento y acceso eficiente a datos, y diversas otras funcionalidades relacionadas a la gestión integral de datos.

1 INTRODUCCIÓN

Page 2: Oracle Spatial de la A a la Z - Unidad 1

2 DESCRIPCIÓN DE BASE DE DATOS

Una base de datos es una colección de datos relacionados. Por dato se entiende a un hecho conocido que puede ser almacenado y que posee un significado implícito. Por ejemplo, considere los nombres, números de teléfono y direcciones de un conjunto de personas almacenados en una libreta de direcciones o en una computadora personal. Esto es una colección de datos relacionados con un significado implícito, de esta forma, es una base de datos. La definición precedente es genérica, sin embargo, el uso común del término base de datos es usualmente más restringido. Una base de datos posee las siguientes propiedades implícitas:

En resumen, una base de datos posee alguna fuente a partir de la cual se derivan los datos, algún grado de interacción con el mundo real, y una audiencia que está activamente interesada en los contenidos de la base de datos.

Un Sistema de Gestión de Base de Datos (DBMS – Database Management System) es una colección de programas de software que permite crear y mantener una base de datos. De esta forma, el DBMS es un sistema de software de propósito general que facilita el proceso de definir, construir y manipular bases de datos para diferentes aplicaciones.

Page 3: Oracle Spatial de la A a la Z - Unidad 1

Definir una base de datos consiste de especificar los tipos de datos, estructuras y restricciones para los datos que serán almacenados en la base de datos. Construir la base de datos es el proceso de almacenar los datos propiamente dichos en un medio de almacenamiento controlado por el DBMS. Manipular una base de datos incluye funciones tales como: consultar la base de datos para recuperar datos específicos, actualizar la base de datos para reflejar cambios ocurridos en el mundo real, y generar reportes a partir de los datos. No es necesario utilizar un software DBMS de propósito general para implementar una base de datos computarizada. Uno podría escribir su propio conjunto de programas para crear y mantener la base de datos, en efecto, creando su propio software DBMS de propósito general. En cualquier caso, ya sea que se utilice un DBMS de propósito general o no, usualmente se emplea una considerable cantidad de software para manipular la base de datos. La base de datos propiamente dicha más el software DBMS conforman un Sistema de Base de Datos  Un DBMS proporciona un entorno conveniente y eficiente para ser utilizado al extraer y almacenar información en la base de datos. Un sistema de bases de datos proporciona a los usuarios una vista abstracta de los datos ocultando ciertos detalles de cómo se almacenan y mantienen los datos. Oracle 11g es un software DBMS de propósito general (figura 1.1).

Page 4: Oracle Spatial de la A a la Z - Unidad 1

3 DESCRIPCIÓN DE RDBMS Y ORDBMS

Michael Stonebraker, en el paper "Object-Relational DBMS: The Next Wave," clasifica a las aplicaciones de bases de datos en cuatro tipos: datos simples sin consulta, datos simples con consulta, datos complejos sin consulta, y datos complejos con consultas. Estos cuatro tipos describen sistemas de archivos, DBMSs relacionales, DBMS orientados a objeto, y DBMSs objeto relacionales, respectivamente. (figura 1.2)

RDBMS

ORDBMS

SISTEMA DE ARCHIVOS

OODBMS

PARADIGMAS DBMS´S

CONSULTAS

SIN CONSULTAS

DATOS SIMPLES

DATOS COMPLEJOS

Una base de datos relacional está compuesta de muchas relaciones en la forma de tablas de dos dimensiones compuestas por filas y columnas conteniendo tuplas (o registros) relacionadas.

Los tipos de consultas que atienden un sistema de gestión de base de datos relacional ( RDBMS ) varían desde simples consultas incluyendo una única tabla de base a consultas complicadas de múltiples tablas incluyendo uniones, anidamiento, diferencia o unión de conjuntos, y otras. Oracle 11g es un RDBMS que implementa todas las características relacionales más funcionalidades enriquecidas, como ser: commits rápidos, backup y recuperación, conectividad escalable, bloque a nivel de filas, consistencia de lectura, particionamiento de tablas, paralelización de consultas, bases de datos en clúster, exportación e importación de datos, entre otras.

La principal desventaja de bases de datos relacionales ocurre debido a su inhabilidad de manejar áreas de aplicación como bases de datos espaciales (ej.: CAD), aplicaciones que manipulan imágenes, y otros tipos de aplicaciones que incluyen la interrelación compleja de datos.

Page 5: Oracle Spatial de la A a la Z - Unidad 1

La ambición de representar objetos complejos ha provocado el desarrollo de sistemas orientados a objeto incluyendo características de orientación a objeto, tales como: tipos de dato abstractos y encapsulamiento (la estructura internad de los datos es ocultada y las operaciones externas pueden ser invocadas sobre el objeto especificado), herencia (tendiendo a la reutilización de definiciones existentes para crear nuevos objetos), etc.

Una base de datos orientada a objetos emplea un modelo de datos que soporta características de orientación a objeto y tipos de datos abstractos. Bases de datos orientadas a objeto utilizan el poderío de los lenguajes de programación orientados a objeto para proporcionar capacidades de programación de base de datos. Un sistema de gestión de base datos orientado a objetos ( OODBMS ) implementa un modelo de objeto, estandarizado por ODMG (Object Database Management Group), que consiste de tipos de dato, constructores de tipo, etc., similar al modelo estándar para bases de datos relacionales. La principal desventaja de ODBMS es la mala performance en la manipulación y acceso a datos. No como en RDBMS, la optimización de consultas en OODBMS es altamente compleja. OODBMS también sufren problemas de escalabilidad, y no son capaces de soportar sistemas de gran escala.

El principal objetivo de un ORDBMS es brindar los beneficios tanto del modelo relacional como del modelo de objetos, tales como: escalabilidad y soporte de tipos de dato enriquecidos. ORDBMSs emplean un modelo de datos que incorpora características de orientación a objeto en RDBMSs. Toda la información es almacenada en tablas, pero algunas de las entradas tabulares en la base de datos pueden poseer estructuras de datos enriquecidas o complejas (tipos de dato abstractos). Un ORDBMS soporta una forma extendida de SQL. Las extensiones son necesarias debido a que ORDBMS dan soporte a tipos de dato abstractos.

Oracle 11g es un ORDBMS, el mismo implementa un sistema de tipos objeto como una extensión al modelo relacional. La interfase tipo objeto brindada por Oracle 11g continúa dando soporte a la funcionalidad de base de datos relacional y, además, SQL y otras varias interfases de programación, incluyendo PL/SQL, Java, OCI ( Oracle Call Interface), etc., han sido enriquecidas con nuevas extensiones para dar soporte a objetos. El resultado es un modelo objeto relacional, el cual es intuitivo y ofrece la riqueza de una interfase objeto, al mismo tiempo que preserva la concurrencia y el rendimiento de una base de datos relacional.

3 TIPOS DE DATOS QUE GESTIONA UNA BASE DE DATOS ORACLE

Oracle 11g gestiona todo tipo de datos, desde datos de empresa (datos que modelan entidades del mundo real, o datos objeto) hasta datos semiestructurados y no estructurados. Como datos no estructurados se clasifican a imágenes, videos, archivos de sonido, etc.

Page 6: Oracle Spatial de la A a la Z - Unidad 1

La categoría de datos semiestructurados abarca al mundo XML, donde se utiliza marcación de datos para dar cierto grado de “estructura” o autodescribir a los datos en sí mismos. Tanto los datos no estructurados como los semiestructurados pueden ser almacenados dentro de la base de datos o fuera de la misma. Oracle 11g provee servicios de base de datos para gestionar y servir datos almacenados fuera de la base datos, ya sea disponibles a través de la web, almacenados en el sistema de archivos local o remoto, o en cualquier otro medio de almacenamiento secundario. Por otro lado, Oracle 11g soporta en su totalidad el modelado de datos de empresa, o datos estructurados. Dentro de esta última clasificación se encuentra al conjunto de tipos de dato predefinidos incluidos en la base de datos, y a los tipos objeto. Cuando se crea una tabla para almacenar datos en la base de datos, es necesario especificar un tipo de dato para cada una de las columnas definidas. Oracle 11g posee varios tipos de datos predefinidos para satisfacer los requerimientos de una aplicación. Oracle 11g también soporta tipos de dato ANSI y DB2. Los tipos de dato predefinidos en Oracle pueden ser clasificados de manera genérica en caracteres, numéricos, long y raw, fecha y hora, objetos largos, y row ID. Los tipos de dato predefinidos y su utilización son tratados más adelante .  Tipos objeto Oracle son tipos de datos definidos por el usuario que hacen posible modelar entidades complejas del mundo real, tales como clientes y órdenes de compra, como entidades unitarias (“objetos”) en la base de datos. Un tipo objeto es una clase de tipo de dato. Los mismos pueden utilizarse de la misma manera en que se trata a los tipos de dato más familiares, como VARCHAR2 y NUMBER. Por ejemplo, es posible definir un tipo objeto como el tipo de dato en una columna de una tabla relacional. La tecnología de objetos que incluye Oracle 11g es un nivel de abstracción construido sobre tecnología relacional Oracle. Nuevos tipos objeto pueden ser creados desde cualquier tipo de dato predefinido o tipo objeto previamente definido. Los metadatos de los tipos definidos por el usuario son almacenados en un esquema que se encuentra disponible para SQL, PL/SQL, Java, y otras interfases de publicación.

Page 7: Oracle Spatial de la A a la Z - Unidad 1

4 NIVELES DE ABSTRACCIÓN DE DATOS

Una característica fundamental de una base de datos es que la misma provee un nivel de abstracción de datos ocultando detalles acerca del almacenamiento de datos que no son necesarios para la mayoría de los usuarios de base de datos. Dicha abstracción es provista a través de un modelo de datos.Un modelo de datos es una colección de conceptos que pueden ser utilizados para describir la estructura de una base de datos. La estructura de una base de datos está conformada por los tipos de datos, las relaciones entre los datos, y las restricciones que existen sobre los datos. La mayoría de los modelos de datos también incluyen un conjunto de operaciones básicas para especificar recuperaciones y actualizaciones realizadas sobre la base de datos.

Page 8: Oracle Spatial de la A a la Z - Unidad 1

5 EL MODELO ENTIDAD – RELACIÓN

El modelo entidad relación (ER) es un modelo de datos conceptual de alto nivel. Este modelo, y sus extensiones, frecuentemente es utilizado para el diseño conceptual de aplicaciones de base de datos, y muchas herramientas de diseño de base de datos emplean sus conceptos. El modelo ER datos como entidades, son relaciones entre entidades y atributos. El objeto básico que el modelo ER representa es una entidad, la cual es una “cosa” del mundo real con existencia independiente. Una entidad puede ser un objeto con existencia física (una persona determinada, un auto, una casa, un empleado), o puede ser un objeto con una existencia conceptual (una compañía, un trabajo, un curso universitario).  Cada entidad posee atributos; propiedades de interés que describen a la entidad. Por ejemplo, una entidad empleado puede ser descrita por su apellido y nombre, edad, dirección, salario y tarea realizada. Una entidad particular poseerá un valor para cada uno de sus atributos Los valores de los atributos que describen cada entidad se tornan la mayor parte de los datos que son almacenados en una base de datos.

Una base de datos normalmente contiene grupos de entidades que son similares. Por ejemplo, una compañía que posee cientos de empleados puede desear almacenar información similar para cada uno de sus empleados. Estas entidades “empleado” comparten el mismo conjunto de atributos, pero cada entidad posee sus propios valores para cada atributo. Un tipo entidad define una colección (o conjunto) de entidades que poseen los mismos atributos. Cada tipo entidad en la base de datos es descrita por su nombre y atributos. La colección de todas las entidades de un tipo entidad particular en la base de datos en un momento determinado es denominado conjunto de entidades, usualmente citado por el mismo nombre del tipo entidad correspondiente. Por ejemplo, EMPLEADO se refiere tanto a un tipo de entidad como al conjunto de todos los empleados almacenados en la base de datos.

Page 9: Oracle Spatial de la A a la Z - Unidad 1

Una relación entre dos o más entidades representa una interacción entre las entidades. Existen varias relaciones implícitas entre tipos entidad. Una relación existe cuando un atributo de un tipo entidad hace referencia a otro tipo entidad. Por ejemplo, el atributo MANAGER del tipo entidad DEPARTMENT hace referencia al empleado que gerencia el departamento en cuestión. Un tipo relación entre tipos entidad define un conjunto de asociaciones (conjunto de relaciones) entre entidades de esos tipos

Como ocurre con tipos entidad y conjuntos de entidades, un tipo relación y su correspondiente conjunto de relaciones son citados por el mismo nombre. Informalmente, cada relación perteneciente al conjunto de relaciones es una asociación de entidades, donde la asociación incluye una entidad de cada uno de los tipos de entidades participantes. Dichas relaciones instancias representan el hecho que las entidades participantes están relacionadas en alguna forma en el dominio de problema correspondiente. Por ejemplo, la relación WORKS_FOR entre los tipo entidad EMPLOYEE y DEPARTMENT asocia cada empleado con el departamento en el cual el mismo trabaja.

Page 10: Oracle Spatial de la A a la Z - Unidad 1

6 EL MODELO DE DATOS RELACIONAL

El modelo de datos relacional utiliza el concepto de relación matemática, la cual puede representarse como una tabla de valores como su bloque de construcción básico. Dicho modelo se basa en la teoría de conjuntos y la lógica de predicados de primer orden, y sus principales características son la simplicidad y su fundamentación matemática. Oracle 11g es un sistema de base de datos comercial que provee una implementación de este modelo.

El modelo relacional representa la base de datos como una colección de relaciones, donde cada relación se asemeja a una tabla de valores o archivo plano de registros. Cuando una relación es pensada como una tabla de valores, cada fila en la tabla representa una colección de valores de datos relacionados.

En el modelo de datos relacional, cada fila en la tabla representa un hecho que corresponde a una entidad o relación en el mundo real. El nombre de la tabla y el nombre de las columnas son utilizados para facilitar la interpretación del significado de los valores en cada fila de la tabla.

Por ejemplo, la tabla EMPLOYEE es denominada de esta manera ya que cada fila representa hechos acerca de una entidad empleado en particular. Los nombres de columnas especifican cómo interpretar los valores de datos en cada fila de acuerdo a la columna a la cual cada valor pertenece.

Todos los valores en una columna son del mismo tipo de dato.

En la terminología formal del modelo relacional, una fila es denominada una tupla, un encabezado de columna es denominado un atributo, y una tabla es denominada una relación. El tipo de dato describiendo los tipos de valores que pueden aparecer en cada columna es denominado dominio.

Page 11: Oracle Spatial de la A a la Z - Unidad 1

7 ELEMENTOS QUE COMPONEN UNA TABLA

La terminología utilizada en el modelo relacional es la siguiente: Tabla: La tabla es la estructura de almacenamiento básica en un Sistema de Administración de Base de Datos Relacional (RDBMS).Los datos de las tablas se almacenan en filas y columnas.  Cada tabla se define con un nombre de tabla que la identifica unívocamente y un conjunto de columnas.  Una vez que se crea una tabla, se le pueden insertar filas de datos válidos.  Las filas de las tablas pueden ser consultadas, borradas o actualizadas. Columna: Una columna representa un tipo de datos en una tabla (por ejemplo, el nombre del cliente en la tabla Clientes).  Una columna también puede ser referenciada como “atributo”.  Cada columna tiene un nombre de columna, un tipo de dato (tal como CHAR, DATE o NUMBER), y un ancho (que puede ser predeterminado por el tipo de dato, como en el caso de DATE) o una escala y precisión (sólo para el tipo de dato NUMBER).Todos los valores de una columna determinada tienen el mismo tipo de datos, y éstos están extraídos de un conjunto de valores legales llamado el dominio de la columna.  Las columnas de una tabla están dispuestas en un orden específico de izquierda a derecha.  Sin embargo, el orden de éstas cuando se almacenan datos no es significativo, pero puede ser especificado cuando se los recupera.

Page 12: Oracle Spatial de la A a la Z - Unidad 1

Fila: Una fila es una combinación de valores de columnas de una tabla (por ejemplo, la información acerca de un cliente en la tabla Clientes).  Una fila a menudo se denomina “tupla” o “registro”.  Cada tabla tiene cero o más filas, conteniendo cada una un único valor en cada columna.  Las filas están desordenadas; por defecto, los datos están dispuestos de acuerdo a cómo se insertaron. Campo: Un campo se encuentra en la intersección de una fila y una columna.  El campo puede contener datos.  Si no hay datos en el campo, se dice que contiene un valor nulo.  Los valores de los campos no se pueden descomponer en componentes más pequeños. Clave primaria: Una clave primaria es una columna o conjunto de columnas que identifican unívocamente cada fila de una tabla (por ejemplo, un número de cliente).  Una tabla tiene una única clave primaria y debe contener un valor. Clave foránea: Una clave foránea es una columna o conjunto de columnas que se refieren a una clave primaria de la misma tabla o de otra.  Se crean estas claves para reforzar las reglas de diseño de la base de datos relacional.  Una tabla puede contener más de una clave foránea.  Una combinación clave primaria/clave foránea crea una relación padre/hijo entre las tablas que las contienen. Las figuras muestran gráficamente lo expresado anteriormente.

Page 13: Oracle Spatial de la A a la Z - Unidad 1

8 TIPOS DE SENTENCIAS SQL

Las sentencias SQL se dividen en las siguientes categorías: •Sentencias de Lenguaje de Definición de Datos (DDL – Data Definition Language): crean, modifican y eliminan objetos de la base de datos (por ejemplo: CREATE, ALTER, DROP, RENAME).

•Sentencias de Lenguaje de Manipulación de Datos (DML – Data Manipulation Language): insertan, modifican, eliminan y consultan filas de tablas de la base de datos (INSERT, UPDATE, DELETE, SELECT).

•Sentencias de Lenguaje de Control de Datos (DCL – Data Control Language): permiten dar o restringir derechos de acceso a la base de datos y a objetos específicos dentro de la base de datos (GRANT, REVOKE).

•Sentencias de Control de Transacciones: manejan los cambios hechos por los comandos del lenguaje de manipulación de datos.  Los cambios a los datos pueden ser agrupados en transacciones lógicas (COMMIT, ROLLBACK, SAVEPOINT).

•Sentencias de Control de Sesión: permiten que un usuario controle las propiedades de la sesión corriente, incluyendo la posibilidad de habilitar o deshabilitar roles, y cambiar la configuración del lenguaje (ALTER SESSION, SET ROLE).

•Sentencias de Control de Sistema: cambian las propiedades de una instancia de Oracle 11g. Permiten cambiar diferentes parámetros de configuración, tal como el número mínimo de servidores compartidos, matar una sesión determinada y ejecutar otras tareas (ALTER SYSTEM, ALTER SESSION, etc.).

•Sentencias de SQL embebido: permite la incorporación de sentencias DDL, DML y de control de transacciones en un programa escrito en lenguaje procedural (OPEN, CLOSE, FETCH, EXECUTE, etc.).