Tipos Estructurados Y Herencia Sql

Páginas: 7 (1716 palabras) Publicado: 3 de junio de 2012
Tipos estructurados y herencia SQL

Antes de SQL:1999 el sistema de tipos de SQL consistía en un conjunto bastante sencillo de tipos predefinidos. SQL:1999 añadió un sistema de tipos extenso a SQL, lo que permite los tipos estructurados y la herencia de tipos.
Los tipos estructurados permiten representar directamente los atributos compuestos de los diagramas E-R. Por ejemplo, se puede definirel siguiente tipo estructurado para representar el atributo compuesto nombre con los atributos componentes nombre_pila y apellidos:

create type Nombre as
(nombre_pila varchar(20),
apellidos varchar(20))
final

De manera parecida, el tipo estructurado siguiente puede usarse para representar el atributo compuesto dirección:

create type Direccion as
(calle varchar(20),
ciudadvarchar(20),
codigo_postal varchar(9))
not final

En SQL estos tipos se denominan tipos definidos por el usuario. Las especificaciones final indica que no se puede crear subtipos de nombre, mientras que la especificación not final de dirección indica que se pueden crear subtipos de dirección. Ahora se pueden usar estos tipos para crear atributos compuestos en las relaciones, con sólo declarar que unatributo es de uno de estos tipos. Por ejemplo, se puede crear una tabla cliente de la siguiente manera.

create table cliente (
nombre Nombre,
direccion Direccion,
fecha_nacimiento date)

O bien, realizando una estructura más del tipo Cliente y generar la tabla a partir de ella:

create type TipoCliente as
(nombre Nombre,
direccion Direccion,
fecha_nacimiento date)
not finalcreate table cliente of TipoCliente

Se puede tener acceso a los componentes de los atributos compuestos usando la notación “punto”; por ejemplo, nombre.nombre_pila devuelve el componente nombre de pila del atributo nombre. El acceso al atributo nombre devolvería un valor del tipo estructurado Nombre.
La siguiente consulta ilustra la manera de tener acceso a los atributos componentes de losatributos compuestos. La consulta busca el apellido y la ciudad de cada cliente.

select nombre.apellido, direccion.ciudad
from cliente

En SQL:1999 se usan funciones constructoras para crear valores de los tipos estructurados. Las funciones con el mismo nombre que un tipo estructurado son funciones constructoras de ese tipo estructurado. Por ejemplo, se puede declarar una función constructorapara el tipo Nombre de esta manera:

create function Nombre(nombre_pila varchar(20), apellidos varchar(20))
returns Nombre
begin
set self.nombre_pila = nombre_pila;
set self.apellidos = apellidos;
end

De manera predeterminada, cada tipo estructurado tiene una función sin argumentos que configura los atributos con sus valores predeterminados. Cualquier otra función constructora hay quecrearla de manera específica.
La instrucción siguiente ilustra la manera de crear una nueva tupla de la relación Cliente. Se da por supuesto que se ha definido una función constructora para Direccion, igual que la función constructora que se definió para Nombre.

insert into Cliente
values
(new Nombre(‘Martín’, ‘Gómez’),
new Direccion(‘Calle Mayor 20’, ‘Madrid’, ‘28045’),
date ‘22-8-1960’)Herencia de tipos

Supóngase que se tiene la siguiente definición de tipo para las personas:

create type Persona
(nombre varchar(20),
direccion varchar(20))

Puede que se desee almacenar en la base de datos información adicional sobre las personas que son estudiantes y sobre las que son profesores. Dado que los estudiantes y los profesores también son personas, se puede usar laherencia para definir en SQL los tipos estudiante y profesor:

create type Estudiante
under Persona
(grado varchar(20),
departamento varchar(20))

create type Profesor
under Persona
(sueldo Integer,
departamento varchar(20))

Tanto Estudiante como Profesor heredan los atributos de Personas.

Herencia de tablas

Las subtablas de SQL se corresponden con el concepto de especialización /...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tipos De Herencia
  • Tipos de herencia
  • Tipos de herencia
  • Estructuras de tablas de sql
  • Estructura Basica De Sql
  • Estructuras De Control SQL
  • Lenguaje De Consulta Estructurado Sql
  • Estructura básica de sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS