1 Conceptos iniciales



Documentos relacionados
Base de datos relacional

3 Consultas y subconsultas

BASE DE DATOS RELACIONALES

ADMINISTRACIÓN DE BASE DE DATOS

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

6.0 Funcionalidades Adicionales

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Microsoft SQL Server Conceptos.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Tema 1. Conceptos básicos

Consultas con combinaciones

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Modelos y Bases de Datos

BASES DE DATOS, MODELOS DE DATOS Y DBMS

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Oracle 12c DISEÑO Y PROGRAMACIÓN

Bases de Datos 3º Informática de Sistemas

Capítulo 5. Cliente-Servidor.

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Estructura de Bases de datos. Leonardo Víquez Acuña

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

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

Elementos requeridos para crearlos (ejemplo: el compilador)

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Visión General de GXportal. Última actualización: 2009

Sub consultas avanzadas

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

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

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Índice libro SQL Server / 6

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

SQL (Structured Query Language)

1

Figura 4.1 Clasificación de los lenguajes de bases de datos

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13

Contenido XIII. Capítulo 1. Capítulo 2. Alfaomega. Bases de datos - Reinosa, Maldonado, Muñoz, Damiano, Abrutsky

Componentes de Integración entre Plataformas Información Detallada

2.1 Multibase. Información mas detallada sobre este sistema se encuentra en [Ceri y Pelagatti 1985].

Tema 11 Bases de datos. Fundamentos de Informática

Mesa de Ayuda Interna

DEPARTAMENTO: Computación y diseño NOMBRE DEL CURSO: Base de datos I CLAVE: ACADEMIA A LA QUE PERTENECE: Base de datos I

Autenticación Centralizada

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012

Capitulo III. Diseño del Sistema.

BASES DE DATOS OFIMÁTICAS

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Workflows? Sí, cuántos quiere?

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

Introducción. Componentes de un SI. Sistema de Información:

IWG-101: Introducción a la Ingeniería. Departamento de Informática, UTFSM 1

SISTEMAS DE INFORMACIÓN II TEORÍA

Novedades en Q-flow 3.02

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

Presentación. 29/06/2005 Monografía de Adscripción 1

10776 Developing Microsoft SQL Server 2012 Databases

5 Objetos de base de datos

LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

19. Packages o paquetes

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Un primer acercamiento a la CMDB.

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

3.3.3 Tecnologías Mercados Datos

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

DATA WAREHOUSING (ENERO DE 2003) Documento creado por Ing. Héctor H. Martínez Orpinel

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Guía Metodológica para el diseño de procesos de negocio

DBMS (Data Base Management System) Un Sistema de Gestión de Base de Datos, consiste en una colección de datos interrelacionados y un conjunto de

Introducción a Bases de Datos

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

Vistas en postgresql

Creación y administración de grupos de dominio

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

3. Modelo relacional: Estructura e integridad.

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

Universidad de Cantabria

Visión Ampliada del Management: Enterprise Performance Management

EL ENTORNO DE TRABAJO SQL ORACLE

A.1. Definiciones de datos en SQL

Sistemas de Información II Tema 1. El enfoque de bases de datos

O C T U B R E SOPORTE CLIENTE. Manual de Usuario Versión 1. VERSIÓN 1 P á g i n a 1

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

MINISTERIO DE EDUCACIÓN DIRECCIÓN DE EDUCACIÓN TÉCNICA Y PROFESIONAL PROGRAMA DE LA ASIGNATURA BASE DE DATOS ESPECIALIDAD INFORMÁTICA.

Guía de Laboratorio Base de Datos I.

Transcripción:

1 Conceptos iniciales La base de datos Oracle9i 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 Oracle9i Server, los cuales proveen funcionalidades de almacenamiento y acceso eficiente a datos, y diversas otras funcionalidades relacionadas a la gestión integral de datos. Con el advenimiento de la teoría de objetos y la proliferación del paradigma de orientación a objetos como base para el desarrollo de aplicaciones de software, surge en el campo de las bases de datos la necesidad de adaptar un modelo para mapear en forma directa, en la base de datos, los objetos manipulados por la aplicación de software. En este sentido, surgen las bases de datos objeto relacionales (ORDBMS) como una adaptación de las bases de datos relacionales brindando, a través de una capa de objetos, una interfase orientada a objetos que permite almacenar, acceder y recuperar datos objeto. Orace9i Server, además de continuar dando soporte a la tecnología relacional, también soporta la tecnología objeto relacional brindando todas las funcionalidades necesarias para la gestión de datos objeto.

1.1 Introducción En la figura 1 se resenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de: Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante

1.1.1 Objetivos Esta sección brinda 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. También se abordará el modelado de datos, una introducción al lenguaje de consultas SQL y beneficios del lenguaje PL/SQL.

1.1.2 Cuestionario de Iniciación Lectura Previa Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

1.1.3 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: Una base de datos representa algún aspecto del mundo real, algunas veces denominado universo de discurso o dominio de problema. Cambios en el dominio correspondiente son reflejados en la base de datos. Una base de datos es una colección de datos lógica y coherente con un significado inherente. Una recolección de datos aleatoria no es una base de datos. Una base de datos es diseñada, construida y cargada con datos para un propósito específico. Existe un grupo de usuarios y un conjunto de aplicaciones preconcebidas en las cuales dichos usuarios están interesados. 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. 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. Oracle9i Server es un software DBMS de propósito general.

1.1.4 Descripción de Servidor de aplicaciones (IAS) La arquitectura de bases de datos tradicional cliente/servidor está basada en un modelo de dos capas. Este modelo consiste de una capa cliente y un servidor de bases de datos. El procesamiento de las tareas y la lógica de aplicación son compartidos entre el servidor de bases de datos y el cliente. Existen muchas desventajas para este modelo. Los clientes en un modelo de dos capas son clientes gruesos, donde se encuentra la mayoría del procesamiento y lógica de aplicación. Esto produce un alto costo de mantenimiento de los clientes. Además, los clientes pueden ser de diferentes plataformas, para lo cual es necesario hacer el deployment (despliegue) de la aplicación para cada plataforma específica.

El modelo de tres capas resuelve los problemas del modelo de dos capas. En un modelo de tres capas, existe una capa entre los clientes y el servidor de base de datos. Esta capa del medio es un servidor de aplicación que contiene el grueso de la lógica de aplicación. Los clientes en este modelo son clientes delgados. Con esta arquitectura, la lógica de aplicación está ubicada en una única capa lo cual facilita el mantenimiento de la misma.

Application Server es un servidor de aplicaciones confiable, escalable, seguro ubicado en la capa del medio (middle-tier). Application Server brinda una infraestructura que puede crecer en base a las necesidades de la empresa u organización. Application Server posibilita a los usuarios implementar aplicaciones mediante una arquitectura de múltiples capas (multitiered). La capa del medio (middle-tier) posee la lógica de la aplicación enviando respuestas a las consultas realizadas por los clientes (normalmente navegadores Web). Una tercera capa (tier) contiene a la base de datos, de esta manera el procesamiento de transacciones en la misma puede ser optimizado. Mediante los servicios que brinda Application Server se puede dar soporte a las distintas etapas que implica construir un e-business (3).

1.1.5 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 (1). 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. Server 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 cluster, 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. 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. Server es un ORDBMS, el mismo implementa un sistema de tipos objeto como una extensión al modelo relacional. La interfase tipo objeto brindada por Server 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 (2)

1.1.6 Tipos de datos que gestiona una BD Oracle Server 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. 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. Server 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, Server 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 (1).

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. Server posee varios tipos de datos predefinidos para satisfacer los requerimientos de una aplicación. Server 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 (2). 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 Server 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.

1.1.7 Modelo 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.

1.1.8 Categorías de Modelos de Datos Los modelos de datos existentes pueden ser categorizados de acuerdo a los tipos de conceptos que utilizan para describir la estructura de la base de datos.? Modelos de datos conceptuales o de alto nivel: Proveen conceptos cercanos a la forma en que la mayoría de los usuarios perciben los datos.? Modelos de datos físicos o de bajo nivel: Proveen conceptos que describen cómo se almacenan los datos en el medio de almacenamiento. Dichos conceptos generalmente son comprendidos y manejados por usuarios administradores de base de datos, y no por usuarios finales.? Modelos de datos representacionales o de implementación: Proveen conceptos que pueden ser entendidos por usuarios finales pero y que a la vez son cercanos a la forma en que los datos están organizados en la computadora. Dichos modelos ocultan algunos detalles acerca del almacenamiento de datos pero pueden ser implementados en un sistema de computación de forma directa. Modelos de datos conceptuales utilizan conceptos tales como: entidades, atributos y relaciones. Modelos de datos físicos representan información en la forma de formatos de registros, ordenamiento de registros, y caminos de acceso. Un camino de acceso es una estructura que hace eficiente la búsqueda de registros particulares en una base de datos. Modelos de datos representacionales o de implementación son los modelos utilizados frecuentemente por los DBMSs comerciales tradicionales, tales como: Oracle9i Server (1). Esta categoría incluye a los modelos de datos relacionales, ampliamente utilizados en la actualidad, y a los modelos de datos legados o heredados utilizados en el pasado (modelo de datos de red y modelo de datos jerárquico) (2). Este tipo de modelo representa datos utilizando estructuras de registros y, de esta forma, generalmente son denominados modelos de datos basados en registros.

1.1.9 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 (1). 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 (2). Por ejemplo, EMPLEADO se refiere tanto a un tipo de entidad como al conjunto de todos los empleados almacenados en la base de datos. 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 (3). 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 entidad 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.

1.1.10 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. Oracle9i Server es un sistema de base de datos comercial que provee una implementación de este modelo (1) y (2). 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.

1.1.11 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. 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 1 y 2 muestran gráficamente lo expresado anteriormente.

1.1.12 El Lenguaje de Consulta Estructurada (SQL) Diseñado e implementado originariamente por IBM, SQL (Structured Query Language) es actualmente el lenguaje estándar para bases de datos relacionales comerciales. Esfuerzos de estandarización llevados a cabo por ANSI (American National Standard Institute) e ISO (International Standards Organization) han producido diferentes versiones estándar de SQL (1). SQL es un lenguaje de base de datos integral (2); el mismo posee sentencias para la definición, consulta y actualización de datos. Adicionalmente, el mismo posee facilidades para definir vistas de base de datos, especificar restricciones de seguridad y definir el acceso a datos, definir restricciones de integridad, y para especificar el control de transacciones.

SQL utiliza los términos tabla, fila y columna para relación, tupla y atributo, respectivamente. SQL es flexible y eficiente, con características que han sido diseñadas para la manipulación de datos facilitando el acceso y la actualización de bases de datos relacionales. Por ejemplo, la siguiente sentencia SQL borra de la base de datos todos los empleados que pertenecen al departamento numero 90: DELETE FROM employees WHERE department_id = 90; SQL es un lenguaje de cuarta generación (declarativo), lo cual significa que una sentencia del lenguaje describe lo que quiere realizarse, pero no en la manera en que debe llevarse a cabo. En la sentencia DELETE mostrada anteriormente, por ejemplo, no es posible dilucidar de qué modo determinará la base de datos cuáles son los empleados que pertenecen al departamento número 90 (empleados que se eliminarán de la base de datos). Probablemente, el servidor Oracle recorrerá el conjunto de todos los empleados en un cierto orden para determinar los elementos que deben borrarse, pero en ningún momento se explicita cómo realizar dicha operación. Todas las operaciones realizadas sobre la información en una base de datos Oracle son ejecutadas utilizando sentencias SQL. Una sentencia SQL es una cadena de caracteres SQL. Sólo una sentencia SQL completa puede ser ejecutada satisfactoriamente. Al ejecutarse un fragmento de sentencia se genera un error indicando que se requiere más texto (3).

1.1.13 Diferencias con PL/SQL Teniendo en cuenta que SQL es un lenguaje de cuarta generación (4GL) y que los lenguajes de tercera generación, como C y COBOL, son de naturaleza más procedimental. Un programa escrito en un lenguaje de tercera generación (3GL) implementa un algoritmo paso a paso para resolver el problema (1). Tanto los lenguajes 3GL como los 4GL tienen sus ventajas y desventajas. Los lenguajes 4GL como SQL son, por regla general, bastante simples (comparados con los de 3GL) y tienen menos sentencias. Asimismo, aíslan al usuario de los algoritmos y estructuras de datos subyacentes. En algunos casos, sin embargo, las estructuras procedimentales disponibles en los lenguajes 3GL resultan útiles para expresar un determinado programa. Y aquí es donde entra el PL/SQL, que combina la potencia y flexibilidad de un lenguaje de SQL (un 4GL) con las estructuras procedimentales de un 3GL. PL/SQL significa Procedural Language/SQL (Lenguaje Procedimental/SQL). Como su propio nombre indica, PL/SQL amplía la funcionalidad de SQL añadiendo estructuras de las que pueden encontrarse en otros lenguajes procedimentales, como:? Variables y tipos (tanto predefinidos como definidos por el usuario)? Estructuras de control, como bucles y órdenes IF-THEN-ELSE? Procedimientos y funciones? Tipos de objetos y métodos (en PL/SQL versión 8 o superior) Las construcciones procedimentales están perfectamente integradas con Oracle SQL, lo que da como resultado un lenguaje potente y estructurado, combinando la flexibilidad de SQL con la potencia y configurabilidad de un 3GL. Por ejemplo si se quiere actualizar el salario del empleado número 250 y de no existirse lo insertará como un nuevo empleado (2).

Trabajando con Oracle9i Server, es posible extender la funcionalidad del lenguaje SQL a través de funciones PL/SQL definidas por el usuario (3). Utilizando funciones PL/SQL en sentencias SQL es posible: Incrementar la productividad brindada al usuario extendiendo el lenguaje SQL. Mejora la expresividad del lenguaje SQL para tareas complejas o no posibles en SQL. Mejorar la eficiencia de consultas. Funciones utilizadas en la cláusula WHERE de una consulta pueden filtrar datos utilizando criterios que, de otra forma, deberían ser evaluados por la aplicación. Manipular cadenas de caracteres para representar tipos de datos especiales. Por ejemplo: latitud, longitud, temperatura, etc. Proveer ejecución de consultas en paralelo. Si la consulta es paralelizada, sentencias SQL en la función PL/SQL pueden también ser ejecutadas en paralelo (utilizando la opción de consulta en paralelo).

1.1.14 Tipos de sentencias SQL Sentencias SQL se dividen en las siguientes categorías (1) : 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 Oracle9i Server. 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.).

1.1.17 Síntesis Oracle surge de la teoría de bases de datos relacionales, concebida por E. F. Codd en la década del 50, y extiende tales conceptos en una amplia gama de direcciones, tales como: data warehousing, procesamiento de transacciones en línea y soporte de aplicaciones web. El desarrollo de software para la gestión de información ha transitado diferentes alternativas en los últimos años. Primeramente, el software que se utilizó para el almacenamiento y la recuperación de datos se basó en sistemas de archivos como medio de almacenamiento. Dicha solución requiere que el programador de aplicaciones defina cómo se almacena y cómo se recupera la información, utilizando un lenguaje de programación, tal como COBOL. Luego surgieron las bases de datos en red y las bases de datos jerárquicas, tecnología que quedó en desuso debido a su incapacidad de base para brindar eficiencia y flexibilidad al gestionar grandes volúmenes de información. Como cuarto paradigma de base de datos, basado en una teoría matemática formalizada, aparecen las bases de datos relacionales; paradigma que ganó rápidamente el mercado de gestión de datos y que evolucionó brindando acceso a datos rápido, flexible y seguro. Debido a su fuerte basamento matemático, la tecnología relacional permitió, y continúa permitiendo, el desarrollo de mecanismos de optimización que se utilizan tanto en el acceso a datos como en la actualización de los mismos. Sin duda, el auge de las bases de datos relacionales se debe a la adopción de un lenguaje estándar universal, SQL, lo que brinda ventajas de integración, estandarización y eficiencia, a la vez que posibilita el acceso a datos de manera rápida y sencilla. Oracle9i Server provee muchas características útiles y poderosas, muchas de las cuales están incorporadas al nivel de SQL. Además, Oracle9i Server posee un lenguaje procedural interno a la base de datos que posibilita la extensión de SQL. Este tema abordó conceptos de bases de datos relacionales y objeto relacionales, introdujo el lenguaje de consulta estructurado estándar SQL, señaló las diferencias que este último posee para con un lenguaje procedural (como PL/SQL), y profundizó en los modelos de datos.