SlideShare una empresa de Scribd logo
RELACIONES ANIDADAS  BARRIENTOS TERÁN JOSÉ LUIS CAYETANO CALIXTO FIDEL CONTRERAS MARTÍNEZ VICTORIA GARCÍA SOTO ELIZABETH MÉNDEZ MARTÍNEZ ORCAR YAIR
RELACIONES ANIDADAS. El modelo relacional anidado es una extensión del modelo relacional en la que los dominios pueden ser atómicos o de relación. Por tanto, el valor de las tuplas de los atributos puede ser una relación, y las relaciones pueden guardarse en otras relaciones. Los objetos complejos, por tanto, pueden representarse mediante una única tupla de las relaciones anidadas. Si se consideran las tuplas de las relaciones anidadas como elementos de datos, se tiene una correspondencia uno a uno entre los elementos de datos y los objetos de la vista de la base de datos del usuario. Un dominio es atómico si los elementos del mismo se consideran unidades indivisibles.
	Las relaciones anidadas se ilustran mediante Un ejemplo extraído de una biblioteca. Considérese que para cada libro se almacena la información siguiente: Título del libro Lista de autores Editorial Lista de palabras clave Puede verse que, si se define una relación para la información anterior, varios de los dominios serán no atómicos.
Autores. Un libro puede tener varios autores. No obstante, puede que se desee hallar todos los documentos entre cuyos autores estuviera Santos. Por tanto, hay interés en una parte del elemento del dominio «conjunto de autores». Palabras clave. Si se guarda un conjunto de palabras clave de cada documento se espera poder recuperar todos los documentos cuyas claves incluyan una o varias de las palabras clave especificadas. Por tanto, se considera que el dominio de la lista de palabras clave no es atómico. Editorial. A diferencia de palabras clave y autores, editorial no tiene un dominio de tipo conjunto. Sin embargo, se puede considerar que editorial consiste en los subcamposnombre y sucursal. Esta manera de considerarlo hace que el dominio de editorial no sea atómico.
TIPOS COMPLEJOS Las relaciones anidadas son sólo un ejemplo de las extensiones del modelo relacional básico. Otros tipos de datos no atómicos, como los registros anidados, también se han mostrado útiles. El modelo de datos orientado a objetos ha creado la necesidad de características como la herencia y las referencias a los objetos.
Los sistemas de tipos complejos y la programación orientada a objetos permiten que los conceptos del modelo E-R, como la identidad de las entidades, los atributos multivalorados y la generalización y la especialización, se representen directamente sin que haga falta una compleja traducción al modelo relacional.
HERENCIA La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas. En primer lugar se considerará la herencia de los tipos y después en el nivel de las tablas. HERENCIA DE TIPOS Supóngase que se dispone de la siguiente definición de tipos para las personas: createtypePersona (nombre varchar(20), dirección varchar(20))
Puede que se desee guardar en la base de datos más información sobre las personas que sean estudiantes y sobre las que sean profesores. Dado que los estudiantes y los profesores también son personas, se puede utilizar la herencia para definir los tipos estudiante y profesor. createtypeEstudiante underPersona (curso varchar(20), departamento varchar(20)) createtypeProfesor underPersona (sueldo integer, departamento varchar(20))
Tanto Estudiante como Profesor heredan los atributos de Persona, es decir, nombre y dirección. Estudiante y Profesor se denominan subtipos de Persona y ésta, a su vez, es un supertipo de Estudiante y de Profesor.    Los métodos de un tipo estructurado se heredan por sus subtipos, al igual que los atributos. Sin embargo, un subtipo puede redefinir el efecto de un método declarando de nuevo el método, usando overridingmethoden lugar de methoden la declaración del método.   Supóngase ahora que se desea guardar la información sobre los ayudantes, que son simultáneamente estudiantes y profesores, quizás incluso en departamentos diferentes.
Por ejemplo, si el sistema de tipos permite la herencia múltiple, se puede definir un tipo para los ayudantes de la manera siguiente: createtypeAyudante underEstudiante, Profesor   Ayudante heredaría todos los atributos de Estudiante y de Profesor. Surge un problema, sin embargo, dado que los atributos nombre, dirección y departamento se hallan presentes en Estudiante y en Profesor. Los atributos nombre y dirección se heredan en realidad de un origen común, Persona. Así que no se provoca ningún conflicto al heredarlos de Estudiante y de Profesor. Sin embargo, el atributo departamento se define de manera separada en Estudiante y en Profesor.
De hecho, los ayudantes pueden ser estudiantes de un departamento y profesores de otro. Para evitar un conflicto entre los dos ejemplares de departamento se les puede cambiar el nombre utilizando una instrucción as como se muestra en la siguiente definición del tipo Ayudante: createtypeAyudante underEstudiante with(departamento as dep-estudiante) Profesor with(departamento as dep-profesor)
En SQL, como en la mayor parte de los lenguajes de programación, las entidades deben tener exactamente un tipo más específico. Es decir, cada valor debe estar asociado con un tipo específico, denominado tipo más específico, cuando se crea. Mediante la herencia también se asocia con cada uno de los supertipos de su tipo más específico.    Por ejemplo, supóngase que una entidad tiene el tipo Persona y el tipo Estudiante. Por tanto, el tipo más específico de la entidad es Estudiante, dado que Estudiante es un subtipo de Persona. Sin embargo, una entidad no puede tener los tipos Estudiante y Profesor, a menos que tenga un tipo, como Ayudante, que sea un subtipo de Profesor y de Estudiante.
HERENCIA DE TABLAS Por ejemplo, supóngase que se define la tabla personas de la manera siguiente:   createtablepersona of Persona Se pueden definir entonces las tablas estudiantes y profesores como subtablasde persona: createtableestudiantes of Estudiante under persona create table profesoresof Profesor underpersona
Los tipos de las subtablas deben ser subtipos del tipo de la tabla padre. Por tanto, cada atributo presente en persona debe estar también presente en las subtablas. Además, cuando se declaran estudiantes y profesores como subtablas de persona, cada tupla presente en estudiantes o profesores también están presentes implícitamente en persona. Así, si una consulta usa la tabla persona, encontrará no sólo las tuplas insertadas directamente en la tabla, sino también las tuplas insertadas en sus subtablasestudiantes y profesores. Sin embargo, sólo se puede acceder a los atributos que están presentes en persona.   createtableayudantes of Ayudante underestudiantes, profesores
TIPOS DE REFERENCIA Los lenguajes orientados a objetos proporcionan la posibilidad de hacer referencia a los objetos. El atributo de un tipo puede ser una referencia a un objeto de un tipo especificado.    createtypeDepartamento( nombre varchar(20), director ref(Persona) scopepersona ) createtabledepartamentos of Departamento    Se puede omitir la declaración scopepersona de la declaración de tipos y en su lugar añadirla a la instrucción  create table. create table departamentosof Departamento (director with options scope persona)
Para inicializar un atributo referencia es necesario obtener el identificador de la tupla a la que se va a hacer referencia. Se puede obtener el valor del identificador de una tupla mediante una consulta. Así, para crear una tupla con el valor referencia, se puede crear en primer lugar la tupla con una referencia nula y después establecer la referencia: insertintodepartamentos values(‘Informática’, null) updatedepartamentos   set director = (select ref(p) from persona as p where nombre= ‘Juan’) wherenombre = ‘Informática’   Esta sintaxis para acceder al identificador de una tupla está basada en la sintaxis de Oracle.
Este atributo, denominado atributo autorreferencial, se declara añadiendo la cláusula refisa la instrucción createtable.   create table persona of Persona ref is idosystem generated Donde ido es un nombre de atributo, no una palabra clave. La subconsulta anterior podría usar selectp.ido en lugar de selectref(p).   Una alternativa a los identificadores generados por el sistema es permitir a los usuarios generar identificadores. El tipo del atributo autorreferencial se debe especificar como parte de la definición de tipos de la tabla referenciada, y la definición de tabla debe especificar que la referencia la genera el usuario (usergenerated).
createtypePersona (nombre varchar(20), dirección varchar(20)) ref using varchar(20) create table persona of Persona refisido usergenerated   Al insertar una tupla en persona se debe proporcionar un valor para el identificador:   insertintopersona values (‘01284567’, ‘Juan’, ‘Plaza Mayor, 1’) Ninguna otra tupla de persona o sus supertablas pueden tener el mismo identificador. Se puede entonces usar el valor del identificador al insertar una tupla en departamentos, sin necesitar una consulta separada para obtener el identificador. insertintodepartamentos values(‘Informática’, ‘01284567’) 
Es posible incluso usar un valor existente de clave primaria como identificador, incluyendo la cláusula reffromen la definición de tipos: createtypePersona (nombre varchar(20) primarykey, dirección varchar(20)) ref from nombre create table persona of Persona refisido derived   Nótese que la definición de tabla debe especificar que la referencia es derivada y aún debe especificar un nombre de atributo autorreferencial. Al insertar una tupla en departamentos, se puede usar: insertintodepartamentos values(‘Informática’, ‘Juan’)
CONSULTAS CON TIPOS COMPLEJOS En este apartado se presenta una extensión del lenguaje de consulta SQL para trabajar con los tipos complejos. Se puede comenzar por un ejemplo sencillo: averiguar el título y el nombre de la editorial de cada documento. La consulta siguiente lleva a cabo esa tarea:  selecttítulo, editorial.nombre fromlibros   Obsérvese que se hace referencia al campo nombre del atributo compuesto editorial utilizando una notación con un punto.
Expresiones de ruta Se puede usar la siguiente consulta para hallar los nombres y direcciones de los directores de todos los departamentos.    selectdirector–>nombre, director–>dirección fromdepartamentos   Una expresión como «director–>nombre» se denomina una expresión de ruta.   Dado que director es una referencia a una tupla de la tabla persona, el atributo nombre en la consulta anterior es el atributo nombre de la tupla de la tabla persona.   Se pueden usar las referencias para ocultar las operaciones reunión; en el ejemplo anterior, sin las referencias, el campo director de departamento se declararía como clave externa de la tabla persona. Para encontrar el nombre y dirección del director de un departamento se necesitaría una reunión explícita de las relaciones departamentos y persona. El uso de referencias simplifica considerablemente la consulta.
Atributos de tipo colección Ahora se considera la forma de manejar los atributos de tipo colección. Los arraysson el único tipo colección soportado por SQL:1999, pero también se usa la misma sintaxis para los atributos de tipo relación. Una expresión que se evalúe a una colección puede aparecer en cualquier lugar en que aparezca un nombre de relación, tal como en la cláusula from, como ilustran los siguientes párrafos. Se usa la tabla libros que se definió anteriormente.  Si se desea hallar todos los documentos que tienen las palabras «base de datos» entre sus palabras clave se puede utilizar la consulta siguiente: selecttítulo fromlibros where«base de datos» in (unnest(lista-palabrasclave))   Obsérvese que se ha usado unnest(lista-palabras-clave) en una posición en la que SQL sin relaciones anidadas habría exigido una subexpresiónselect-fromwhere. Si se sabe que un libro en particular tiene tres autores, se podría escribir: select array-autores[1], array-autores[2], array-autores[3] fromlibros wheretítulo = ‘Fundamentos de bases de datos’
ANIDAMIENTO Y DESANIDAMIENTO  La transformación de una relación anidada en una forma con menos (o sin) atributos de tipo relación se denomina desanidamiento. La relación libros tiene dos atributos, array-autores y lista-palabras-clave, que son colecciones, y otros dos, título y editorial, que no lo son. Supóngase que se desea convertir la relación en una sola relación plana, sin relaciones anidadas ni tipos estructurados como atributos. Se puede utilizar la siguiente consulta para llevar a cabo la tarea:   selecttítulo, A as autor, editorial.nombre as nombre-edit, editorial.sucursal as sucursal.edit, K as palabra-clave from librosas B, unnest(B.array-autores) as A, unnest(B.lista-palabras-clave) as K   La variable B de la cláusula fromse declara para que tome valores de libros. La variable A se declara para que tome valores de los autores en array-autores para el documento B y K se declara para que tome valores de las palabras clave de la lista-palabras-clave del mismo.
El proceso inverso de transformar una relación 1FN en una relación anidada se denomina anidamiento. El anidamiento puede realizarse mediante una extensión de la agrupación en SQL. En el uso normal de la agrupación en SQL se crea (lógicamente) una relación multiconjunto temporal para cada grupo y se aplica una función de agregación a esa relación temporal. Devolviendo el multiconjunto en lugar de aplicar la función de agregación se puede crear una relación anidada.  La consulta siguiente anida la relación en el atributo palabra-clave:   selecttítulo, autor, Editorial(nombre-edit, sucursal-edit) as editorial, set(palabra-clave) as lista-palabras-clave fromlibros-planos groupbytítulo, autor, editorial  
Si se desea anidar también el atributo autor y volver a convertir, por tanto, la tabla libros-planos, en 1FN, en la tabla anidada libros mostrada en la Figura 9.1 se puede utilizar la consulta siguiente:   selecttítulo, set(autor) as array-autores, Editorial (nombre-edit, sucursal-edit) as editorial, set(palabra-clave) as lista-palabras-clave fromlibros-planos groupbytítulo, editoria
COMPARACIÓN ENTRE LAS BASES DE DATOS ORIENTADAS A OBJETOSY LAS BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS Las extensiones persistentes de los lenguajes de programación y los sistemas relacionales orientados a objetos se han dirigido a mercados diferentes. La naturaleza declarativa y la limitada potencia (comparada con la de los lenguajes de programación) del lenguaje SQL proporcionan una buena protección de los datos respecto de los errores de programación y hace que las optimizaciones de alto nivel, como la reducción de E/S, resulten relativamente sencillas.
Los sistemas relacionales orientados a objetos se dirigen a la simplificación de la realización de los modelos de datos y de las consultas mediante el uso de tipos de datos complejos. Las aplicaciones típicas incluyen el almacenamiento y la consulta de datos complejos, incluyendo los datos multimedia. Los lenguajes declarativos como SQL, sin embargo, imponen una reducción significativa del rendimiento a ciertos tipos de aplicaciones que se ejecutan principalmente en la memoria principal y realizan gran número de accesos a la base de datos. Los lenguajes de programación persistentes se dirigen a las aplicaciones de este tipo que tienen necesidad de elevados rendimientos.  
Los puntos fuertes de los varios tipos de sistemas de bases de datos pueden resumirse de la manera siguiente:   • Sistemas relacionales: tipos de datos sencillos, lenguajes de consulta potentes, protección elevada. • Bases de datos orientadas a objetos basadas en lenguajes de programación persistentes: tipos de datos complejos, integración con los lenguajes de programación, elevado rendimiento. • Sistemas relacionales orientados a objetos: tipos de datos complejos, lenguajes de consulta potentes, protección elevada.

Más contenido relacionado

La actualidad más candente

Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
esacre
 
Normalization of Data Base
Normalization of Data BaseNormalization of Data Base
Normalization of Data Base
Ravinder Kamboj
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
hugodanielgd
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Erivan Martinez Ovando
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
Sibel Kuzgun AKIN
 
Functional dependencies and normalization
Functional dependencies and normalizationFunctional dependencies and normalization
Functional dependencies and normalization
daxesh chauhan
 
Manual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambasManual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambas
Moposita1994
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
Genesis Davalos
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datos
Jose O- Vera
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
Louis Jhosimar
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
Denisse C
 
Trabajo Final Base De Datos
Trabajo Final Base De DatosTrabajo Final Base De Datos
Trabajo Final Base De Datos
ricardo901
 
Núcleo 3 - Normalización de Bases de datos
Núcleo 3 - Normalización de Bases de datosNúcleo 3 - Normalización de Bases de datos
Núcleo 3 - Normalización de Bases de datos
carsanta
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
Jorge Paredes Toledo
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
knowallrpa
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
INFOP
 
Sql
SqlSql
Modelo e r
Modelo e rModelo e r
Modelo e r
garci17
 

La actualidad más candente (18)

Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
 
Normalization of Data Base
Normalization of Data BaseNormalization of Data Base
Normalization of Data Base
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
 
Normal Formlar
Normal FormlarNormal Formlar
Normal Formlar
 
Functional dependencies and normalization
Functional dependencies and normalizationFunctional dependencies and normalization
Functional dependencies and normalization
 
Manual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambasManual de conexion a una base de datos con gambas
Manual de conexion a una base de datos con gambas
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datos
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 
Vistas en bases de datos
Vistas en bases de datosVistas en bases de datos
Vistas en bases de datos
 
Trabajo Final Base De Datos
Trabajo Final Base De DatosTrabajo Final Base De Datos
Trabajo Final Base De Datos
 
Núcleo 3 - Normalización de Bases de datos
Núcleo 3 - Normalización de Bases de datosNúcleo 3 - Normalización de Bases de datos
Núcleo 3 - Normalización de Bases de datos
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Sql
SqlSql
Sql
 
Modelo e r
Modelo e rModelo e r
Modelo e r
 

Similar a B A S E S D E D A T O S R E L A C I O N A L E S

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
jorge220395
 
Bases de datos orientado a objetos
Bases de datos orientado a objetosBases de datos orientado a objetos
Bases de datos orientado a objetos
jorge220395
 
Tarea de la unidad 7
Tarea de la unidad 7Tarea de la unidad 7
Tarea de la unidad 7
Ramon Carenzo
 
Modelo Relacional Rozic
Modelo Relacional RozicModelo Relacional Rozic
Modelo Relacional Rozic
Carlos Arturo
 
Base de datos 2 parte
Base de datos 2 parteBase de datos 2 parte
Base de datos 2 parte
saraiacevedo
 
32117.ppt
32117.ppt32117.ppt
32117.ppt
ssuser948499
 
Modelo de entidad de relación
Modelo de entidad de relaciónModelo de entidad de relación
Modelo de entidad de relación
tatytaloor
 
Base de datos
Base de datosBase de datos
Base de datos
AXELELIANAMAVIZCA
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
natha16853
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
natha16853
 
Elementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relaciónElementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relación
Cam Bandini
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
Dayse Elizabeth Rivera Cordova
 
Modelo De Datos Rozic
Modelo De Datos RozicModelo De Datos Rozic
Modelo De Datos Rozic
Carlos Arturo
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
natha16853
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
natha16853
 
Base datos 2 camila florez maria florez
Base datos 2 camila florez maria florezBase datos 2 camila florez maria florez
Base datos 2 camila florez maria florez
Camila Florez
 
Modelo de datos_rozic
Modelo de datos_rozicModelo de datos_rozic
Modelo de datos_rozic
Facilitador Apoyo
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
lauraluiso
 
Fundamentos de bases de datos unidad 2
Fundamentos de bases de datos unidad 2Fundamentos de bases de datos unidad 2
Fundamentos de bases de datos unidad 2
LUIS ANTOINO SANCHEZ REYNOSO
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
K Manuel TN
 

Similar a B A S E S D E D A T O S R E L A C I O N A L E S (20)

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
 
Bases de datos orientado a objetos
Bases de datos orientado a objetosBases de datos orientado a objetos
Bases de datos orientado a objetos
 
Tarea de la unidad 7
Tarea de la unidad 7Tarea de la unidad 7
Tarea de la unidad 7
 
Modelo Relacional Rozic
Modelo Relacional RozicModelo Relacional Rozic
Modelo Relacional Rozic
 
Base de datos 2 parte
Base de datos 2 parteBase de datos 2 parte
Base de datos 2 parte
 
32117.ppt
32117.ppt32117.ppt
32117.ppt
 
Modelo de entidad de relación
Modelo de entidad de relaciónModelo de entidad de relación
Modelo de entidad de relación
 
Base de datos
Base de datosBase de datos
Base de datos
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Elementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relaciónElementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relación
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Modelo De Datos Rozic
Modelo De Datos RozicModelo De Datos Rozic
Modelo De Datos Rozic
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Base datos 2 camila florez maria florez
Base datos 2 camila florez maria florezBase datos 2 camila florez maria florez
Base datos 2 camila florez maria florez
 
Modelo de datos_rozic
Modelo de datos_rozicModelo de datos_rozic
Modelo de datos_rozic
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Fundamentos de bases de datos unidad 2
Fundamentos de bases de datos unidad 2Fundamentos de bases de datos unidad 2
Fundamentos de bases de datos unidad 2
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 

Último

Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Unidad de Espiritualidad Eudista
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
Respuesta del icfes pre saber verificadas
Respuesta del icfes pre saber verificadasRespuesta del icfes pre saber verificadas
Respuesta del icfes pre saber verificadas
KarenCaicedo28
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
Inslvarez5
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
ssusera6697f
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
https://gramadal.wordpress.com/
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Demetrio Ccesa Rayme
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Demetrio Ccesa Rayme
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
amayaltc18
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
https://gramadal.wordpress.com/
 

Último (20)

Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
Respuesta del icfes pre saber verificadas
Respuesta del icfes pre saber verificadasRespuesta del icfes pre saber verificadas
Respuesta del icfes pre saber verificadas
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
 
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
Inteligencia Artificial para Docentes  HIA  Ccesa007.pdfInteligencia Artificial para Docentes  HIA  Ccesa007.pdf
Inteligencia Artificial para Docentes HIA Ccesa007.pdf
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
 
Sesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdfSesión: El espiritismo desenmascarado.pdf
Sesión: El espiritismo desenmascarado.pdf
 

B A S E S D E D A T O S R E L A C I O N A L E S

  • 1. RELACIONES ANIDADAS BARRIENTOS TERÁN JOSÉ LUIS CAYETANO CALIXTO FIDEL CONTRERAS MARTÍNEZ VICTORIA GARCÍA SOTO ELIZABETH MÉNDEZ MARTÍNEZ ORCAR YAIR
  • 2. RELACIONES ANIDADAS. El modelo relacional anidado es una extensión del modelo relacional en la que los dominios pueden ser atómicos o de relación. Por tanto, el valor de las tuplas de los atributos puede ser una relación, y las relaciones pueden guardarse en otras relaciones. Los objetos complejos, por tanto, pueden representarse mediante una única tupla de las relaciones anidadas. Si se consideran las tuplas de las relaciones anidadas como elementos de datos, se tiene una correspondencia uno a uno entre los elementos de datos y los objetos de la vista de la base de datos del usuario. Un dominio es atómico si los elementos del mismo se consideran unidades indivisibles.
  • 3. Las relaciones anidadas se ilustran mediante Un ejemplo extraído de una biblioteca. Considérese que para cada libro se almacena la información siguiente: Título del libro Lista de autores Editorial Lista de palabras clave Puede verse que, si se define una relación para la información anterior, varios de los dominios serán no atómicos.
  • 4. Autores. Un libro puede tener varios autores. No obstante, puede que se desee hallar todos los documentos entre cuyos autores estuviera Santos. Por tanto, hay interés en una parte del elemento del dominio «conjunto de autores». Palabras clave. Si se guarda un conjunto de palabras clave de cada documento se espera poder recuperar todos los documentos cuyas claves incluyan una o varias de las palabras clave especificadas. Por tanto, se considera que el dominio de la lista de palabras clave no es atómico. Editorial. A diferencia de palabras clave y autores, editorial no tiene un dominio de tipo conjunto. Sin embargo, se puede considerar que editorial consiste en los subcamposnombre y sucursal. Esta manera de considerarlo hace que el dominio de editorial no sea atómico.
  • 5. TIPOS COMPLEJOS Las relaciones anidadas son sólo un ejemplo de las extensiones del modelo relacional básico. Otros tipos de datos no atómicos, como los registros anidados, también se han mostrado útiles. El modelo de datos orientado a objetos ha creado la necesidad de características como la herencia y las referencias a los objetos.
  • 6. Los sistemas de tipos complejos y la programación orientada a objetos permiten que los conceptos del modelo E-R, como la identidad de las entidades, los atributos multivalorados y la generalización y la especialización, se representen directamente sin que haga falta una compleja traducción al modelo relacional.
  • 7. HERENCIA La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas. En primer lugar se considerará la herencia de los tipos y después en el nivel de las tablas. HERENCIA DE TIPOS Supóngase que se dispone de la siguiente definición de tipos para las personas: createtypePersona (nombre varchar(20), dirección varchar(20))
  • 8. Puede que se desee guardar en la base de datos más información sobre las personas que sean estudiantes y sobre las que sean profesores. Dado que los estudiantes y los profesores también son personas, se puede utilizar la herencia para definir los tipos estudiante y profesor. createtypeEstudiante underPersona (curso varchar(20), departamento varchar(20)) createtypeProfesor underPersona (sueldo integer, departamento varchar(20))
  • 9. Tanto Estudiante como Profesor heredan los atributos de Persona, es decir, nombre y dirección. Estudiante y Profesor se denominan subtipos de Persona y ésta, a su vez, es un supertipo de Estudiante y de Profesor.   Los métodos de un tipo estructurado se heredan por sus subtipos, al igual que los atributos. Sin embargo, un subtipo puede redefinir el efecto de un método declarando de nuevo el método, usando overridingmethoden lugar de methoden la declaración del método.   Supóngase ahora que se desea guardar la información sobre los ayudantes, que son simultáneamente estudiantes y profesores, quizás incluso en departamentos diferentes.
  • 10. Por ejemplo, si el sistema de tipos permite la herencia múltiple, se puede definir un tipo para los ayudantes de la manera siguiente: createtypeAyudante underEstudiante, Profesor   Ayudante heredaría todos los atributos de Estudiante y de Profesor. Surge un problema, sin embargo, dado que los atributos nombre, dirección y departamento se hallan presentes en Estudiante y en Profesor. Los atributos nombre y dirección se heredan en realidad de un origen común, Persona. Así que no se provoca ningún conflicto al heredarlos de Estudiante y de Profesor. Sin embargo, el atributo departamento se define de manera separada en Estudiante y en Profesor.
  • 11. De hecho, los ayudantes pueden ser estudiantes de un departamento y profesores de otro. Para evitar un conflicto entre los dos ejemplares de departamento se les puede cambiar el nombre utilizando una instrucción as como se muestra en la siguiente definición del tipo Ayudante: createtypeAyudante underEstudiante with(departamento as dep-estudiante) Profesor with(departamento as dep-profesor)
  • 12. En SQL, como en la mayor parte de los lenguajes de programación, las entidades deben tener exactamente un tipo más específico. Es decir, cada valor debe estar asociado con un tipo específico, denominado tipo más específico, cuando se crea. Mediante la herencia también se asocia con cada uno de los supertipos de su tipo más específico.   Por ejemplo, supóngase que una entidad tiene el tipo Persona y el tipo Estudiante. Por tanto, el tipo más específico de la entidad es Estudiante, dado que Estudiante es un subtipo de Persona. Sin embargo, una entidad no puede tener los tipos Estudiante y Profesor, a menos que tenga un tipo, como Ayudante, que sea un subtipo de Profesor y de Estudiante.
  • 13. HERENCIA DE TABLAS Por ejemplo, supóngase que se define la tabla personas de la manera siguiente:   createtablepersona of Persona Se pueden definir entonces las tablas estudiantes y profesores como subtablasde persona: createtableestudiantes of Estudiante under persona create table profesoresof Profesor underpersona
  • 14. Los tipos de las subtablas deben ser subtipos del tipo de la tabla padre. Por tanto, cada atributo presente en persona debe estar también presente en las subtablas. Además, cuando se declaran estudiantes y profesores como subtablas de persona, cada tupla presente en estudiantes o profesores también están presentes implícitamente en persona. Así, si una consulta usa la tabla persona, encontrará no sólo las tuplas insertadas directamente en la tabla, sino también las tuplas insertadas en sus subtablasestudiantes y profesores. Sin embargo, sólo se puede acceder a los atributos que están presentes en persona.   createtableayudantes of Ayudante underestudiantes, profesores
  • 15. TIPOS DE REFERENCIA Los lenguajes orientados a objetos proporcionan la posibilidad de hacer referencia a los objetos. El atributo de un tipo puede ser una referencia a un objeto de un tipo especificado.   createtypeDepartamento( nombre varchar(20), director ref(Persona) scopepersona ) createtabledepartamentos of Departamento    Se puede omitir la declaración scopepersona de la declaración de tipos y en su lugar añadirla a la instrucción create table. create table departamentosof Departamento (director with options scope persona)
  • 16. Para inicializar un atributo referencia es necesario obtener el identificador de la tupla a la que se va a hacer referencia. Se puede obtener el valor del identificador de una tupla mediante una consulta. Así, para crear una tupla con el valor referencia, se puede crear en primer lugar la tupla con una referencia nula y después establecer la referencia: insertintodepartamentos values(‘Informática’, null) updatedepartamentos   set director = (select ref(p) from persona as p where nombre= ‘Juan’) wherenombre = ‘Informática’   Esta sintaxis para acceder al identificador de una tupla está basada en la sintaxis de Oracle.
  • 17. Este atributo, denominado atributo autorreferencial, se declara añadiendo la cláusula refisa la instrucción createtable.   create table persona of Persona ref is idosystem generated Donde ido es un nombre de atributo, no una palabra clave. La subconsulta anterior podría usar selectp.ido en lugar de selectref(p).   Una alternativa a los identificadores generados por el sistema es permitir a los usuarios generar identificadores. El tipo del atributo autorreferencial se debe especificar como parte de la definición de tipos de la tabla referenciada, y la definición de tabla debe especificar que la referencia la genera el usuario (usergenerated).
  • 18. createtypePersona (nombre varchar(20), dirección varchar(20)) ref using varchar(20) create table persona of Persona refisido usergenerated   Al insertar una tupla en persona se debe proporcionar un valor para el identificador:   insertintopersona values (‘01284567’, ‘Juan’, ‘Plaza Mayor, 1’) Ninguna otra tupla de persona o sus supertablas pueden tener el mismo identificador. Se puede entonces usar el valor del identificador al insertar una tupla en departamentos, sin necesitar una consulta separada para obtener el identificador. insertintodepartamentos values(‘Informática’, ‘01284567’) 
  • 19. Es posible incluso usar un valor existente de clave primaria como identificador, incluyendo la cláusula reffromen la definición de tipos: createtypePersona (nombre varchar(20) primarykey, dirección varchar(20)) ref from nombre create table persona of Persona refisido derived   Nótese que la definición de tabla debe especificar que la referencia es derivada y aún debe especificar un nombre de atributo autorreferencial. Al insertar una tupla en departamentos, se puede usar: insertintodepartamentos values(‘Informática’, ‘Juan’)
  • 20. CONSULTAS CON TIPOS COMPLEJOS En este apartado se presenta una extensión del lenguaje de consulta SQL para trabajar con los tipos complejos. Se puede comenzar por un ejemplo sencillo: averiguar el título y el nombre de la editorial de cada documento. La consulta siguiente lleva a cabo esa tarea: selecttítulo, editorial.nombre fromlibros   Obsérvese que se hace referencia al campo nombre del atributo compuesto editorial utilizando una notación con un punto.
  • 21. Expresiones de ruta Se puede usar la siguiente consulta para hallar los nombres y direcciones de los directores de todos los departamentos.   selectdirector–>nombre, director–>dirección fromdepartamentos   Una expresión como «director–>nombre» se denomina una expresión de ruta.   Dado que director es una referencia a una tupla de la tabla persona, el atributo nombre en la consulta anterior es el atributo nombre de la tupla de la tabla persona.   Se pueden usar las referencias para ocultar las operaciones reunión; en el ejemplo anterior, sin las referencias, el campo director de departamento se declararía como clave externa de la tabla persona. Para encontrar el nombre y dirección del director de un departamento se necesitaría una reunión explícita de las relaciones departamentos y persona. El uso de referencias simplifica considerablemente la consulta.
  • 22. Atributos de tipo colección Ahora se considera la forma de manejar los atributos de tipo colección. Los arraysson el único tipo colección soportado por SQL:1999, pero también se usa la misma sintaxis para los atributos de tipo relación. Una expresión que se evalúe a una colección puede aparecer en cualquier lugar en que aparezca un nombre de relación, tal como en la cláusula from, como ilustran los siguientes párrafos. Se usa la tabla libros que se definió anteriormente.  Si se desea hallar todos los documentos que tienen las palabras «base de datos» entre sus palabras clave se puede utilizar la consulta siguiente: selecttítulo fromlibros where«base de datos» in (unnest(lista-palabrasclave))   Obsérvese que se ha usado unnest(lista-palabras-clave) en una posición en la que SQL sin relaciones anidadas habría exigido una subexpresiónselect-fromwhere. Si se sabe que un libro en particular tiene tres autores, se podría escribir: select array-autores[1], array-autores[2], array-autores[3] fromlibros wheretítulo = ‘Fundamentos de bases de datos’
  • 23. ANIDAMIENTO Y DESANIDAMIENTO  La transformación de una relación anidada en una forma con menos (o sin) atributos de tipo relación se denomina desanidamiento. La relación libros tiene dos atributos, array-autores y lista-palabras-clave, que son colecciones, y otros dos, título y editorial, que no lo son. Supóngase que se desea convertir la relación en una sola relación plana, sin relaciones anidadas ni tipos estructurados como atributos. Se puede utilizar la siguiente consulta para llevar a cabo la tarea:   selecttítulo, A as autor, editorial.nombre as nombre-edit, editorial.sucursal as sucursal.edit, K as palabra-clave from librosas B, unnest(B.array-autores) as A, unnest(B.lista-palabras-clave) as K   La variable B de la cláusula fromse declara para que tome valores de libros. La variable A se declara para que tome valores de los autores en array-autores para el documento B y K se declara para que tome valores de las palabras clave de la lista-palabras-clave del mismo.
  • 24. El proceso inverso de transformar una relación 1FN en una relación anidada se denomina anidamiento. El anidamiento puede realizarse mediante una extensión de la agrupación en SQL. En el uso normal de la agrupación en SQL se crea (lógicamente) una relación multiconjunto temporal para cada grupo y se aplica una función de agregación a esa relación temporal. Devolviendo el multiconjunto en lugar de aplicar la función de agregación se puede crear una relación anidada. La consulta siguiente anida la relación en el atributo palabra-clave:   selecttítulo, autor, Editorial(nombre-edit, sucursal-edit) as editorial, set(palabra-clave) as lista-palabras-clave fromlibros-planos groupbytítulo, autor, editorial  
  • 25. Si se desea anidar también el atributo autor y volver a convertir, por tanto, la tabla libros-planos, en 1FN, en la tabla anidada libros mostrada en la Figura 9.1 se puede utilizar la consulta siguiente:   selecttítulo, set(autor) as array-autores, Editorial (nombre-edit, sucursal-edit) as editorial, set(palabra-clave) as lista-palabras-clave fromlibros-planos groupbytítulo, editoria
  • 26. COMPARACIÓN ENTRE LAS BASES DE DATOS ORIENTADAS A OBJETOSY LAS BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS Las extensiones persistentes de los lenguajes de programación y los sistemas relacionales orientados a objetos se han dirigido a mercados diferentes. La naturaleza declarativa y la limitada potencia (comparada con la de los lenguajes de programación) del lenguaje SQL proporcionan una buena protección de los datos respecto de los errores de programación y hace que las optimizaciones de alto nivel, como la reducción de E/S, resulten relativamente sencillas.
  • 27. Los sistemas relacionales orientados a objetos se dirigen a la simplificación de la realización de los modelos de datos y de las consultas mediante el uso de tipos de datos complejos. Las aplicaciones típicas incluyen el almacenamiento y la consulta de datos complejos, incluyendo los datos multimedia. Los lenguajes declarativos como SQL, sin embargo, imponen una reducción significativa del rendimiento a ciertos tipos de aplicaciones que se ejecutan principalmente en la memoria principal y realizan gran número de accesos a la base de datos. Los lenguajes de programación persistentes se dirigen a las aplicaciones de este tipo que tienen necesidad de elevados rendimientos.  
  • 28. Los puntos fuertes de los varios tipos de sistemas de bases de datos pueden resumirse de la manera siguiente:   • Sistemas relacionales: tipos de datos sencillos, lenguajes de consulta potentes, protección elevada. • Bases de datos orientadas a objetos basadas en lenguajes de programación persistentes: tipos de datos complejos, integración con los lenguajes de programación, elevado rendimiento. • Sistemas relacionales orientados a objetos: tipos de datos complejos, lenguajes de consulta potentes, protección elevada.