SlideShare una empresa de Scribd logo
1 de 22
Modelo Lógico Objeto-Relacional
object-relational database management system (ORDBMS) Sistema de gestión de bases de datos (DBMS), similar a una base de datos relacional, pero con un modelo de base de datos orientada a objetos. Objetos, clases y herencia están soportados directamente en los esquemas de bases de datos y en el lenguaje de consulta.
El objetivo básico de la base de datos objeto-relacional es cerrar la brecha entre bases de datos relacionales y las técnicas de modelado orientado a objetos utilizados en los lenguajes de programación como Java, C + +, Visual Basic. NET o C #.
¿cómo asignar los datos relacionales en objetos? Una primera idea podría ser mapear atributos de objetos a los campos en una tabla. Desafortunadamente, este enfoque no crea el mapa perfecto por varias razones. Los objetos no sólo almacenan datos simples en sus atributos. Pueden almacenar colecciones o relaciones con otros objetos. La mayoría de bases de datos relacionales - MySQL y mSQL entre otras- no tienen forma de modelar herencia.
Reglas generales para el modelado objeto/relacional Cada clase persistente tiene una tabla de base de datos correspondiente. Campos de objetos con tipos de datos primitivos (enteros, caracteres, cadenas, etc) se asignan a columnas en la tabla de base de datos asociada. Cada fila de una tabla de base de datos corresponde a una instancia de su clase persistente asociada. Cada relación de objeto de muchos a muchos requiere una tabla de join al igual que las entidades de base de datos con muchos-a-muchos requieren tabla de joins.  La herencia es modelada a través de una relación uno-a-uno entre las dos tablas que corresponden a la clase y subclase.
El modelo de datos para una aplicación simple de libreta de direcciones direccion persona idDireccion(PK) Linea1 Linea1 Linea3 Ciudad Provincia idPersona(PK) idDireccion(FK) Nombre Apellido titulo SELECT P.Apellido,P.Nombre, D.ciudad FROM persona P JOIN direccion D ON D.idDireccion=P.idDireccion WHERE D.ciudad=“Guayaquil"
El modelo de objetos para una aplicación sencilla de libreta de direcciones direccion persona Linea1:String Linea1:String Linea3:String Ciudad:String Provincia:String Nombre: String Apellido: String Titulo: String cambiarDirecc() El modelo objeto-relacional ofrece una ventaja  Puede hacer uso de las relaciones entre los datos para obtener fácilmente los registros relacionados.  SELECT P.Nombre FROM Persona P WHERE P.direccion.ciudad=“Guayaquil" la relación es "comprendida" por el ORDB
ObjectTypes Un tipo de objeto es una especie de tipo de datos.  Se puede usar de la misma manera que los tipos de datos más conocidos, como NUMBER o VARCHAR2.  Por ejemplo, puede especificar un tipo de objeto como el tipo de datos de una columna de una tabla relacional, y se pueden declarar variables de un tipo de objeto.  Puede utilizar una variable de un tipo de objeto que contiene un valor de ese tipo de objeto. Un valor de un tipo de objeto es una instancia de ese tipo. Una instancia de objeto se llama también un objeto.
CREATE TYPE tipo_persona AS OBJECT ( id NUMBER, nombre VARCHAR2(30), telefono VARCHAR2(20), MAP MEMBER FUNCTION get_id RETURN NUMBER );  CREATE TYPE BODY tipo_persona AS MAP MEMBER FUNCTION get_id RETURN NUMBER IS BEGIN      RETURN id;      END;      END;
Tipos de Objeto Vs. datos nativos de una base de datos relacional: Un conjunto de tipos de objetos no viene ya con la base de datos Tipos de objetos están compuestos de partes, llamadas atributos y métodos. Atributos contienen los datos sobre las características de un objeto de interés.  Por ejemplo, un tipo de objeto estudiante puede tener atributos  como nombre, carrera y fecha de graduación.  Los métodos son procedimientos o funciones previstas para permitir realizar a las aplicaciones operaciones útiles sobre los atributos del tipo de objeto.  Los métodos son un elemento opcional de un tipo de objeto. Ellos definen el comportamiento de los objetos de ese tipo y determinan lo que el tipo de objeto puede hacer.
Objetos Cuando se crea una variable de un tipo de objeto, se crea una instancia del tipo y el resultado es un objeto.  Un objeto tiene los atributos y los métodos definidos para su tipo.  Debido a que una instancia de objeto es algo concreto, se pueden asignar valores a sus atributos y llamar a sus métodos.
Por ejemplo, podría definir una tabla relacional para realizar un seguimiento de sus contactos: CREATE TABLE contactos ( contacto tipo_persona, fecha_contacto DATE );  INSERT INTO contactos VALUES ( tipo_persona (65, 'Luis Gomez', '2234544'), '24 Jun 2011' );
Métodos de Objeto Los métodos son funciones o procedimientos que se pueden declarar en una definición de tipo de objeto para implementar un comportamiento que desea que los objetos de ese tipo lleven a cabo.  El tipo general de los métodos que se pueden declarar en una definición de tipo son los siguientes: Miembro Estático constructor Uno de los usos principales de los métodos es proporcionar acceso a los datos de un objeto.  Por ejemplo, la siguiente sentencia SQL utiliza el método get_id () para mostrar el número de identificación de las personas en la tabla de contactos: SELECT c.contacto.get_id() FROM contactos c;
SQLJ SQLJ es un estándard ISO (ISO/IEC 9075-10) para embeber sentencias SQL en programas de Lenguaje de programación Java. Al contrario que JDBC, SQLJ no es un API sino una extensión del lenguaje. Así, los programas SQLJ deben ejecutarse a través de un preprocesador (el traductor SQLJ) antes de que puedan ser compilados.
Ventajas de SQLJ sobre JDBC: Los programas SQLJ son más fáciles de escribir y de mantener. Además tienden a ser más cortos que los programas JDBC equivalentes. Es más eficiente que JDBC dado que las sentencias SQL son analizadas y los caminos de acceso son optimizados en tiempo de compilación en lugar de en tiempo de ejecución. Suministra mejor control de autorización: La Autorización puede ser concedida a los programas en lugar de a los usuarios. Los problemas de rendimiento potenciales, tales como las consultas ineficientes debido a un mal camino de acceso, pueden ser identificados en tiempo de desarrollo.
Desventajas SQLJ requiere un paso de preprocesamiento. Muchos IDEs no proporcionan soporte SQLJ. No hay soporte de SQLJ para la mayoría de frameworks de persistencia comunes, tales como Hibernate.
Insert JDBC SQLJ stmt = conn.prepareStatement(       "INSERT INTO DSN8710.EMP " + "(EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) " + "VALUES (?, ?, ?, ?, CURRENT DATE, ?)"); stmt.setString(1, empno); stmt.setString(2, firstname); stmt.setString(3, midinit); stmt.setString(4, lastname); stmt.setBigDecimal(5, salary); stmt.executeUpdate();  stmt.close();        #sql [ctx] { INSERT INTO DSN8710.EMP (EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) VALUES (:empno,:firstname,:midinit,:lastname, CURRENT DATE,:salary) };
Consulta de una fila JDBC SQLJ PreparedStatementstmt = conn.prepareStatement( "SELECT MAX(SALARY), AVG(SALARY)" + " FROM DSN8710.EMP"); rs = statement.executeQuery(); if (!rs.next()) { // Error -- no se encontraron filas } maxSalary = rs.getBigDecimal(1); avgSalary = rs.getBigDecimal(2);  if (rs.next()) { // Error -- más de una fila encontrada }  rs.close();  stmt.close();        #sql [ctx] { SELECT MAX(SALARY), AVG(SALARY) INTO:maxSalary,:avgSalary FROM DSN8710.EMP };
Consulta de varias filas JDBC SQLJ PreparedStatementstmt = conn.prepareStatement( "SELECT LASTNAME" + ", FIRSTNME" + ", SALARY" + " FROM DSN8710.EMP" + " WHERE SALARY BETWEEN ? AND ?"); stmt.setBigDecimal(1, min); stmt.setBigDecimal(2, max); ResultSetrs = stmt.executeQuery(); while (rs.next()) { lastname = rs.getString(1); firstname = rs.getString(2); salary = rs.getBigDecimal(3); // Imprimir fila... } rs.close();  stmt.close(); #sql private static iteratorEmployeeIterator(String, String, BigDecimal); EmployeeIteratoriter; #sql [ctx] iter = { SELECT LASTNAME , FIRSTNME , SALARY FROM DSN8710.EMP WHERE SALARY BETWEEN:minAND:max }; while (true) { #sql { FETCH:iterINTO:lastname,:firstname,:salary }; if (iter.endFetch()) break; // Imprimir fila... } iter.close();
SQLX SQLX o SQL/XML es un estándar ANSI / ISO que brinda soporte para el uso del lenguaje XML en el contexto de una base de datos SQL.  Las empresas y usuarios desean tener la habilidad de integrar sus datos XML a sus datos relacionales, a través de las facilidades del lenguaje SQL. SQLX hace posible almacenar documentos XML en una base de datos SQL, consultar dichos documentos usando XPath y XQuery, y "publicar" sus datos SQL existentes en la forma de documentos XML.
SQLX XmlElement() Crea un elemento XML. XMLFOREST ()Crea un fragmento de XML a partir de pasado-en los componentes. XMLColAttVal ()Crea un fragmento de XML y luego se expande el XML resultante de manera que cada fragmento de XML tiene el nombre de "columna" con el atributo "nombre" ExtractValue () Toma como argumentos una instancia XMLType y una expresión XPath y devuelve un valor escalar del nodo resultante. XMLTransform () Toma como argumentos una instancia XMLType y una hoja de estilo XSL, que a su vez es una forma de instancia XMLType. Se aplica la hoja de estilo a la instancia y devuelve un XMLType. XMLSequence () Toma de entrada y devuelve un VARRAY de los nodos de nivel superior en la XMLType, o un tipo de XMLSequence un documento XML para cada fila del cursor. XMLCONCAT () Toma como entrada una serie de casos XMLType, concatena una serie de elementos de cada fila, y devuelve la serie concatenada. UpdateXML () Toma como argumentos una instancia XMLType y un par de XPath de valor, y devuelve una instancia XMLType con el valor actualizado.
XMLELEMENT( elementname IN VARCHAR2, [XMLATTRIBUTES(),] value_expr, ...) RETURN XMLType XMLATTRIBUTES( value_expr [AS identifier], ...) RETURN XMLType SELECT XMLElement("Date", hire_date)       FROM hr.employees     WHERE employee_id = 203;     XMLELEMENT("DATE",HIRE_DATE) ----------------------------     <Date>1994-06-07</Date>

Más contenido relacionado

La actualidad más candente

Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasgrupo niche ortega
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacionalEduar Alfons Leon
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Jsrfs Montemayor
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datosMaria Barrios
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 
Presentación de fases de diseño de base de datos
Presentación de fases de diseño de base de datosPresentación de fases de diseño de base de datos
Presentación de fases de diseño de base de datosYarquiri Claudio
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigaciónJhoel Dgez Garcia
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 

La actualidad más candente (20)

Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivas
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacional
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datos
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Presentación de fases de diseño de base de datos
Presentación de fases de diseño de base de datosPresentación de fases de diseño de base de datos
Presentación de fases de diseño de base de datos
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Bases de datos jerarquicas
Bases de datos jerarquicasBases de datos jerarquicas
Bases de datos jerarquicas
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigación
 
Problema del barbero durmiente
Problema del barbero durmienteProblema del barbero durmiente
Problema del barbero durmiente
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
C3 lenguaje de presentación.
C3 lenguaje de presentación.C3 lenguaje de presentación.
C3 lenguaje de presentación.
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
 
Rational rose
Rational roseRational rose
Rational rose
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Destacado

Los modelos de datos y el modelo objeto relacional
Los modelos de datos y el modelo objeto relacionalLos modelos de datos y el modelo objeto relacional
Los modelos de datos y el modelo objeto relacionalomarib
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosJose Diaz Silva
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
BASE DE DATOS ORIENTADO A OBJETOS
BASE DE DATOS ORIENTADO A OBJETOSBASE DE DATOS ORIENTADO A OBJETOS
BASE DE DATOS ORIENTADO A OBJETOSmigmorbus1
 
Modelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosModelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosarmin tilano
 
Base De Datos Multimedia
Base De Datos MultimediaBase De Datos Multimedia
Base De Datos Multimediaunemi
 
Proyecto de investogaciófinallllllll
Proyecto de investogaciófinallllllllProyecto de investogaciófinallllllll
Proyecto de investogaciófinallllllllkerenaradi
 
Arquitectura de Sistemas de Bases de datos
Arquitectura de Sistemas de Bases de datosArquitectura de Sistemas de Bases de datos
Arquitectura de Sistemas de Bases de datosnegriz
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosFernando Baculima
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datosgonzalopomboza
 
Historia de la hojas de cálculo.
Historia de la hojas de cálculo.Historia de la hojas de cálculo.
Historia de la hojas de cálculo.Ruben Gómez
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
Historia de las Bases de Datos
Historia de las Bases de DatosHistoria de las Bases de Datos
Historia de las Bases de Datosda4
 

Destacado (20)

Los modelos de datos y el modelo objeto relacional
Los modelos de datos y el modelo objeto relacionalLos modelos de datos y el modelo objeto relacional
Los modelos de datos y el modelo objeto relacional
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetos
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
BASE DE DATOS ORIENTADO A OBJETOS
BASE DE DATOS ORIENTADO A OBJETOSBASE DE DATOS ORIENTADO A OBJETOS
BASE DE DATOS ORIENTADO A OBJETOS
 
Modelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetosModelo de base de datos orientados a objetos
Modelo de base de datos orientados a objetos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Base de Datos Multimedia
Base de Datos MultimediaBase de Datos Multimedia
Base de Datos Multimedia
 
Base De Datos Multimedia
Base De Datos MultimediaBase De Datos Multimedia
Base De Datos Multimedia
 
Base datos f06
Base datos f06Base datos f06
Base datos f06
 
Proyecto de investogaciófinallllllll
Proyecto de investogaciófinallllllllProyecto de investogaciófinallllllll
Proyecto de investogaciófinallllllll
 
DISEÑO FISICO DE BASE DATOS
DISEÑO FISICO DE BASE DATOSDISEÑO FISICO DE BASE DATOS
DISEÑO FISICO DE BASE DATOS
 
Arquitectura de Sistemas de Bases de datos
Arquitectura de Sistemas de Bases de datosArquitectura de Sistemas de Bases de datos
Arquitectura de Sistemas de Bases de datos
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datos
 
Problemas de diseño de base de datos
Problemas de diseño de base de datosProblemas de diseño de base de datos
Problemas de diseño de base de datos
 
Historia de la hojas de cálculo.
Historia de la hojas de cálculo.Historia de la hojas de cálculo.
Historia de la hojas de cálculo.
 
Modelos de red
Modelos de redModelos de red
Modelos de red
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Modelo jerarquico
Modelo jerarquicoModelo jerarquico
Modelo jerarquico
 
Historia de las Bases de Datos
Historia de las Bases de DatosHistoria de las Bases de Datos
Historia de las Bases de Datos
 

Similar a ORDBMS-ModeloObjetoRelacional

Tarea de la unidad 7
Tarea de la unidad 7Tarea de la unidad 7
Tarea de la unidad 7Ramon Carenzo
 
Bases de datos orientado a objetos
Bases de datos orientado a objetosBases de datos orientado a objetos
Bases de datos orientado a objetosjorge220395
 
Bases de datos orientado a objetos Exponer
Bases de datos orientado a objetos ExponerBases de datos orientado a objetos Exponer
Bases de datos orientado a objetos Exponerjorge220395
 
Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Juan Raul Vergara
 
ADO NET Entity FrameWork
ADO NET Entity FrameWorkADO NET Entity FrameWork
ADO NET Entity FrameWorkmascodigo
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial500y
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Modelo de datos.
Modelo de datos.Modelo de datos.
Modelo de datos.omarzon
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con HibernateMauro Gomez Mejia
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorJomicast
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfAbisSanMartin1
 

Similar a ORDBMS-ModeloObjetoRelacional (20)

Bdo r en oracle
Bdo r en oracleBdo r en oracle
Bdo r en oracle
 
Tarea de la unidad 7
Tarea de la unidad 7Tarea de la unidad 7
Tarea de la unidad 7
 
Base De Datos I
Base De Datos IBase De Datos I
Base De Datos I
 
Bases de datos orientado a objetos
Bases de datos orientado a objetosBases de datos orientado a objetos
Bases de datos orientado a objetos
 
Bases de datos orientado a objetos Exponer
Bases de datos orientado a objetos ExponerBases de datos orientado a objetos Exponer
Bases de datos orientado a objetos Exponer
 
Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.Base de datos Objeto-Relacional.
Base de datos Objeto-Relacional.
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
ADO NET Entity FrameWork
ADO NET Entity FrameWorkADO NET Entity FrameWork
ADO NET Entity FrameWork
 
Investigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencialInvestigacion alter, create y integridad referencial
Investigacion alter, create y integridad referencial
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Modelo de datos.
Modelo de datos.Modelo de datos.
Modelo de datos.
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Base de Datos I (I Bimestre)
Base de Datos I (I Bimestre)Base de Datos I (I Bimestre)
Base de Datos I (I Bimestre)
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
Persistencia de datos
Persistencia de datosPersistencia de datos
Persistencia de datos
 
Base de datos moviles
Base de datos movilesBase de datos moviles
Base de datos moviles
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdf
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 

Más de Velmuz Buzz

Ecuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenEcuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenVelmuz Buzz
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de ProgramacionVelmuz Buzz
 
Capa de Aplicacion
Capa de AplicacionCapa de Aplicacion
Capa de AplicacionVelmuz Buzz
 
Capa de Transporte
Capa de TransporteCapa de Transporte
Capa de TransporteVelmuz Buzz
 
Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura OrganizacionalVelmuz Buzz
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema expertoVelmuz Buzz
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistoresVelmuz Buzz
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadoresVelmuz Buzz
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacionVelmuz Buzz
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo hVelmuz Buzz
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repasoVelmuz Buzz
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferenciaVelmuz Buzz
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejerciciosVelmuz Buzz
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodosVelmuz Buzz
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fetVelmuz Buzz
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolaresVelmuz Buzz
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fetVelmuz Buzz
 

Más de Velmuz Buzz (20)

Ecuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenEcuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er Orden
 
Ruby
Ruby Ruby
Ruby
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 
Capa de Aplicacion
Capa de AplicacionCapa de Aplicacion
Capa de Aplicacion
 
Capa de Transporte
Capa de TransporteCapa de Transporte
Capa de Transporte
 
Capa Red
Capa RedCapa Red
Capa Red
 
Capa Enlace
Capa Enlace Capa Enlace
Capa Enlace
 
Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura Organizacional
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema experto
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistores
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadores
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacion
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo h
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repaso
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferencia
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejercicios
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodos
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolares
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 

ORDBMS-ModeloObjetoRelacional

  • 2. object-relational database management system (ORDBMS) Sistema de gestión de bases de datos (DBMS), similar a una base de datos relacional, pero con un modelo de base de datos orientada a objetos. Objetos, clases y herencia están soportados directamente en los esquemas de bases de datos y en el lenguaje de consulta.
  • 3. El objetivo básico de la base de datos objeto-relacional es cerrar la brecha entre bases de datos relacionales y las técnicas de modelado orientado a objetos utilizados en los lenguajes de programación como Java, C + +, Visual Basic. NET o C #.
  • 4. ¿cómo asignar los datos relacionales en objetos? Una primera idea podría ser mapear atributos de objetos a los campos en una tabla. Desafortunadamente, este enfoque no crea el mapa perfecto por varias razones. Los objetos no sólo almacenan datos simples en sus atributos. Pueden almacenar colecciones o relaciones con otros objetos. La mayoría de bases de datos relacionales - MySQL y mSQL entre otras- no tienen forma de modelar herencia.
  • 5. Reglas generales para el modelado objeto/relacional Cada clase persistente tiene una tabla de base de datos correspondiente. Campos de objetos con tipos de datos primitivos (enteros, caracteres, cadenas, etc) se asignan a columnas en la tabla de base de datos asociada. Cada fila de una tabla de base de datos corresponde a una instancia de su clase persistente asociada. Cada relación de objeto de muchos a muchos requiere una tabla de join al igual que las entidades de base de datos con muchos-a-muchos requieren tabla de joins. La herencia es modelada a través de una relación uno-a-uno entre las dos tablas que corresponden a la clase y subclase.
  • 6. El modelo de datos para una aplicación simple de libreta de direcciones direccion persona idDireccion(PK) Linea1 Linea1 Linea3 Ciudad Provincia idPersona(PK) idDireccion(FK) Nombre Apellido titulo SELECT P.Apellido,P.Nombre, D.ciudad FROM persona P JOIN direccion D ON D.idDireccion=P.idDireccion WHERE D.ciudad=“Guayaquil"
  • 7. El modelo de objetos para una aplicación sencilla de libreta de direcciones direccion persona Linea1:String Linea1:String Linea3:String Ciudad:String Provincia:String Nombre: String Apellido: String Titulo: String cambiarDirecc() El modelo objeto-relacional ofrece una ventaja Puede hacer uso de las relaciones entre los datos para obtener fácilmente los registros relacionados. SELECT P.Nombre FROM Persona P WHERE P.direccion.ciudad=“Guayaquil" la relación es "comprendida" por el ORDB
  • 8. ObjectTypes Un tipo de objeto es una especie de tipo de datos. Se puede usar de la misma manera que los tipos de datos más conocidos, como NUMBER o VARCHAR2. Por ejemplo, puede especificar un tipo de objeto como el tipo de datos de una columna de una tabla relacional, y se pueden declarar variables de un tipo de objeto. Puede utilizar una variable de un tipo de objeto que contiene un valor de ese tipo de objeto. Un valor de un tipo de objeto es una instancia de ese tipo. Una instancia de objeto se llama también un objeto.
  • 9. CREATE TYPE tipo_persona AS OBJECT ( id NUMBER, nombre VARCHAR2(30), telefono VARCHAR2(20), MAP MEMBER FUNCTION get_id RETURN NUMBER ); CREATE TYPE BODY tipo_persona AS MAP MEMBER FUNCTION get_id RETURN NUMBER IS BEGIN RETURN id; END; END;
  • 10. Tipos de Objeto Vs. datos nativos de una base de datos relacional: Un conjunto de tipos de objetos no viene ya con la base de datos Tipos de objetos están compuestos de partes, llamadas atributos y métodos. Atributos contienen los datos sobre las características de un objeto de interés. Por ejemplo, un tipo de objeto estudiante puede tener atributos como nombre, carrera y fecha de graduación. Los métodos son procedimientos o funciones previstas para permitir realizar a las aplicaciones operaciones útiles sobre los atributos del tipo de objeto. Los métodos son un elemento opcional de un tipo de objeto. Ellos definen el comportamiento de los objetos de ese tipo y determinan lo que el tipo de objeto puede hacer.
  • 11. Objetos Cuando se crea una variable de un tipo de objeto, se crea una instancia del tipo y el resultado es un objeto. Un objeto tiene los atributos y los métodos definidos para su tipo. Debido a que una instancia de objeto es algo concreto, se pueden asignar valores a sus atributos y llamar a sus métodos.
  • 12. Por ejemplo, podría definir una tabla relacional para realizar un seguimiento de sus contactos: CREATE TABLE contactos ( contacto tipo_persona, fecha_contacto DATE ); INSERT INTO contactos VALUES ( tipo_persona (65, 'Luis Gomez', '2234544'), '24 Jun 2011' );
  • 13. Métodos de Objeto Los métodos son funciones o procedimientos que se pueden declarar en una definición de tipo de objeto para implementar un comportamiento que desea que los objetos de ese tipo lleven a cabo. El tipo general de los métodos que se pueden declarar en una definición de tipo son los siguientes: Miembro Estático constructor Uno de los usos principales de los métodos es proporcionar acceso a los datos de un objeto. Por ejemplo, la siguiente sentencia SQL utiliza el método get_id () para mostrar el número de identificación de las personas en la tabla de contactos: SELECT c.contacto.get_id() FROM contactos c;
  • 14. SQLJ SQLJ es un estándard ISO (ISO/IEC 9075-10) para embeber sentencias SQL en programas de Lenguaje de programación Java. Al contrario que JDBC, SQLJ no es un API sino una extensión del lenguaje. Así, los programas SQLJ deben ejecutarse a través de un preprocesador (el traductor SQLJ) antes de que puedan ser compilados.
  • 15. Ventajas de SQLJ sobre JDBC: Los programas SQLJ son más fáciles de escribir y de mantener. Además tienden a ser más cortos que los programas JDBC equivalentes. Es más eficiente que JDBC dado que las sentencias SQL son analizadas y los caminos de acceso son optimizados en tiempo de compilación en lugar de en tiempo de ejecución. Suministra mejor control de autorización: La Autorización puede ser concedida a los programas en lugar de a los usuarios. Los problemas de rendimiento potenciales, tales como las consultas ineficientes debido a un mal camino de acceso, pueden ser identificados en tiempo de desarrollo.
  • 16. Desventajas SQLJ requiere un paso de preprocesamiento. Muchos IDEs no proporcionan soporte SQLJ. No hay soporte de SQLJ para la mayoría de frameworks de persistencia comunes, tales como Hibernate.
  • 17. Insert JDBC SQLJ stmt = conn.prepareStatement( "INSERT INTO DSN8710.EMP " + "(EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) " + "VALUES (?, ?, ?, ?, CURRENT DATE, ?)"); stmt.setString(1, empno); stmt.setString(2, firstname); stmt.setString(3, midinit); stmt.setString(4, lastname); stmt.setBigDecimal(5, salary); stmt.executeUpdate(); stmt.close(); #sql [ctx] { INSERT INTO DSN8710.EMP (EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) VALUES (:empno,:firstname,:midinit,:lastname, CURRENT DATE,:salary) };
  • 18. Consulta de una fila JDBC SQLJ PreparedStatementstmt = conn.prepareStatement( "SELECT MAX(SALARY), AVG(SALARY)" + " FROM DSN8710.EMP"); rs = statement.executeQuery(); if (!rs.next()) { // Error -- no se encontraron filas } maxSalary = rs.getBigDecimal(1); avgSalary = rs.getBigDecimal(2); if (rs.next()) { // Error -- más de una fila encontrada } rs.close(); stmt.close(); #sql [ctx] { SELECT MAX(SALARY), AVG(SALARY) INTO:maxSalary,:avgSalary FROM DSN8710.EMP };
  • 19. Consulta de varias filas JDBC SQLJ PreparedStatementstmt = conn.prepareStatement( "SELECT LASTNAME" + ", FIRSTNME" + ", SALARY" + " FROM DSN8710.EMP" + " WHERE SALARY BETWEEN ? AND ?"); stmt.setBigDecimal(1, min); stmt.setBigDecimal(2, max); ResultSetrs = stmt.executeQuery(); while (rs.next()) { lastname = rs.getString(1); firstname = rs.getString(2); salary = rs.getBigDecimal(3); // Imprimir fila... } rs.close(); stmt.close(); #sql private static iteratorEmployeeIterator(String, String, BigDecimal); EmployeeIteratoriter; #sql [ctx] iter = { SELECT LASTNAME , FIRSTNME , SALARY FROM DSN8710.EMP WHERE SALARY BETWEEN:minAND:max }; while (true) { #sql { FETCH:iterINTO:lastname,:firstname,:salary }; if (iter.endFetch()) break; // Imprimir fila... } iter.close();
  • 20. SQLX SQLX o SQL/XML es un estándar ANSI / ISO que brinda soporte para el uso del lenguaje XML en el contexto de una base de datos SQL. Las empresas y usuarios desean tener la habilidad de integrar sus datos XML a sus datos relacionales, a través de las facilidades del lenguaje SQL. SQLX hace posible almacenar documentos XML en una base de datos SQL, consultar dichos documentos usando XPath y XQuery, y "publicar" sus datos SQL existentes en la forma de documentos XML.
  • 21. SQLX XmlElement() Crea un elemento XML. XMLFOREST ()Crea un fragmento de XML a partir de pasado-en los componentes. XMLColAttVal ()Crea un fragmento de XML y luego se expande el XML resultante de manera que cada fragmento de XML tiene el nombre de "columna" con el atributo "nombre" ExtractValue () Toma como argumentos una instancia XMLType y una expresión XPath y devuelve un valor escalar del nodo resultante. XMLTransform () Toma como argumentos una instancia XMLType y una hoja de estilo XSL, que a su vez es una forma de instancia XMLType. Se aplica la hoja de estilo a la instancia y devuelve un XMLType. XMLSequence () Toma de entrada y devuelve un VARRAY de los nodos de nivel superior en la XMLType, o un tipo de XMLSequence un documento XML para cada fila del cursor. XMLCONCAT () Toma como entrada una serie de casos XMLType, concatena una serie de elementos de cada fila, y devuelve la serie concatenada. UpdateXML () Toma como argumentos una instancia XMLType y un par de XPath de valor, y devuelve una instancia XMLType con el valor actualizado.
  • 22. XMLELEMENT( elementname IN VARCHAR2, [XMLATTRIBUTES(),] value_expr, ...) RETURN XMLType XMLATTRIBUTES( value_expr [AS identifier], ...) RETURN XMLType SELECT XMLElement("Date", hire_date) FROM hr.employees WHERE employee_id = 203; XMLELEMENT("DATE",HIRE_DATE) ---------------------------- <Date>1994-06-07</Date>