Está en la página 1de 7

TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.

doc
1/7

TEMA 35: La definición de los datos. Niveles de descripción.


Lenguajes. Diccionario de datos
[P]
Se habla del diccionario de datos tb en el tema 49 pero éste se refiere a la documentación que
acompaña al DFD, definiendo los datos que aparecen en el modelo. Este dicc se puede hacer a mano
o con herramientas CASE pero no debemos confundirlo con el diccionario que aparece aquí, que lo
crea automáticamente el SGBDR con cada sentencia DDL y que luego lo comprueba con cada DML

1. Introducción (Empresas->Manejan datos. La relación entre datos->valor. SGBD


son los encargados de definir, recuperar y actualizar los datos) 2

2. Niveles de descripción de una BBDD 2

2.1. ANSI/X3/SPARC (3 niveles: cada usuario 1 esquema, diseño independiente de cada


nivel) 2
2.1.1. Nivel interno (almacenamiento: tam bloques, direccionamiento, índices, punteros) 3
2.1.2. Nivel conceptual o lógico (nombres de entidades, atributos; sus relaciones, restricciones) 3
2.1.3. Nivel externo (subesquemas) 3

3. Lenguajes (DDL, DML, DCL, para cada nivel. Codasyl y SQL) 3

3.1. DDL: Lenguaje Definición de Datos. 4

3.2. Funciones de Definición (objetos, estructura, relaciones, vistas, índices, reparto


físico en BBDD distribuidas) 4

3.3. Tipos de DDLs 5


3.3.1. Lenguajes huésped (precompilación) (son diferidos o no conversacionales) 5
3.3.2. Lenguajes autocontenidos: SQL 5

4. Diccionario de datos (creado a la vez que la BBDD y es modificado con cada


sentencia del DDL, consultado en la compilación de cada sentencia para comprobar
permisos, la estructura de las tablas…) 5

5. Conclusión (resumen, lo que definen los DDL en cada uno de los 3 niveles) 6

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
2/7

1. Introducción (Empresas->Manejan datos. La relación


entre datos->valor. SGBD son los encargados de definir,
recuperar y actualizar los datos)
Empresas->Manejan muchos datos.
La relación entre dichos datos es lo que da el conocimiento, el valor.
Para ello, se definen ciertos Sistemas de Información donde se almacenan y tratan
dichos datos.
Los SGBD son los encargados de definir, recuperar y actualizar los datos en dicho SI.

2. Niveles de descripción de una BBDD


Las BBDD actuales presentan varios niveles, cada uno de ellos define ciertas
características de los datos.
Con este esquema se consigue la independencia entre las funciones asociadas a la
implementación física de los datos y el esquema o vista que ofrecemos de estos datos a
los usuarios.
El modelo más extendido que utilizan las BBDD es el estandarizado por ANSI.

2.1. ANSI/X3/SPARC (3 niveles: cada usuario 1 esquema,


diseño independiente de cada nivel)
El modelo más usado. Mete una capa más entre el nivel físico y el lógico del modelo
Codasyl inicial, para que la representación lógica de los datos no dependa en modo
alguno de su implementación real.

Ilustración 1: Modelo ANSI de BBDD

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
3/7
Ventajas:
Cada usuario podrá tener la vista que le interese de la información que le interese y con
el tipo de acceso que nos convenga.
Diseño independiente de cada nivel.

2.1.1. Nivel interno (almacenamiento: tam bloques,


direccionamiento, índices, punteros)
El lenguaje de definición de datos de este nivel debe ser capaz de definir aspectos del
almacenamiento físico en un dispositivo de memoria secundaria: tamaño de los bloques,
posición relativa, direccionamiento; así como cómo acceder a la información: punteros,
índices...

2.1.2. Nivel conceptual o lógico (nombres de entidades, atributos;


sus relaciones, restricciones)
Describe los datos reales: nombres de entidades, atributos, etc y sus relaciones y
restricciones, pero no su implementación.

2.1.3. Nivel externo (subesquemas)


vista del usuario y sus permisos. Habrá un subesquema por usuario/aplicación que
accede a la BBDD que contendrá únicamente la información que a ese usuario
(aplicación) le es útil.

3. Lenguajes (DDL, DML, DCL, para cada nivel. Codasyl


y SQL)
Los lenguajes que podemos asociar a una BBDD se agrupan en tres grupos: de
definición de datos, de manipulación de datos y de acceso a los datos (aunque éstos
podemos encontrarlos englobados en los grupos anteriores en cierta bibliografía y en
muchos casos, la realidad nos indica que no hay tres sino uno con todas las funciones).
Así, para un determinado modelo de datos deberíamos tener tres lenguajes: uno para la
definición de los datos en cada uno de los tres niveles, otro para su manipulación y otro
para el control de acceso a los datos.
Codasyl y SQL ha propuesto sendos lenguajes para la definición y manipulación de una
BBDD en red y relacional respectivamente.

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
4/7
Por otro lado, cada sistema comercial ha creado su propio lenguaje, parecido en mayor o
menor medida al estándar del modelo correspondiente.

La realidad es que pocos son los sistemas en red que han implementado el estándar de
Codasyl mientras que SQL es ampliamente soportado en las BBDD relacionales
comerciales. Éstas han añadido o eliminado algunas sentencias pero, en general, se
acercan bastante al estándar.
En el siguiente apartado, a modo de ejemplo, se incluirán sentencias del DDL de SQL,
el más utilizado en la actualidad.

3.1. DDL: Lenguaje Definición de Datos.


Como hemos comentando, el DDL debe tener instrucciones que nos permitan todo lo
necesario para definir los datos y su estructura.
En teoría, debería haber un lenguaje de definición para cada uno de los niveles de
descripción de la arquitectura ANSI. Esto haría más real la separación entre niveles ya
que, p.ej., desde el lenguaje de definición de vistas no se podría modificar la estructura
interna. Sin embargo, para hacerlo más fácil a los usuarios, lo normal es encontrarnos
un único lenguaje con funciones que cubran los tres niveles.
En el caso de SQL, este lenguaje te da instrucciones para realizar las operaciones de
definición de los datos siendo la sintaxis del lenguaje la misma para los tres niveles.

3.2. Funciones de Definición (objetos, estructura, relaciones,


vistas, índices, reparto físico en BBDD distribuidas)
Utilizando el DDL el DBA debe ser capaz de crear el esquema lógico: crear los objetos
y las relaciones entre ellos, las restricciones, etc:
CREATE TABLE (
Atrib1 TIPO_DATO1 ...)
ALTER TABLE
ADD/DROP COLUMN
ADD/CONSTRAINT

Tb debe ser capaz de crear el esquema interno y hacer la correspondencia entre el


esquema interno y el externo. La creación del esquema interno conlleva la creación de

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
5/7
índices, ocuparnos del direccionamiento, del reparto físico de las tablas entre distintas
ubicaciones en BBDD distribuidas…
CREATE INDEX ... ON ...
Con respecto al esquema externo, creará los usuarios y sus permisos, las vistas...
CREATE USER usuario1 IDENTIFIED BY password1
CREATE VIEW Nombre_Vista AS (SELECT...)

3.3. Tipos de DDLs

3.3.1. Lenguajes huésped (precompilación) (son diferidos o no


conversacionales)
Son lenguajes embebidos en otros lenguajes de programación.
Es necesaria una precompilación de estos lenguajes para analizar estas líneas incluidas
en su código, de ahí que sean diferidos ya que las sentencias no son interpretadas
“online” como en los lenguajes conversacionales.

3.3.2. Lenguajes autocontenidos: SQL

4. Diccionario de datos (creado a la vez que la BBDD y


es modificado con cada sentencia del DDL, consultado
en la compilación de cada sentencia para comprobar
permisos, la estructura de las tablas…)
El diccionario de datos está formado por lo que se conoce como “metadatos”, es decir,
información acerca de los datos en la BBDD.
El diccionario es creado a la vez que la BBDD y es modificado con cada sentencia del
DDL.
En el modelo relacional el diccionario de datos está también formado por tablas en las
que se guarda información acerca de la BBDD en general, estructura del las tablas de
datos, dónde están guardadas, los índices que existen, los usuarios creados y sus
permisos, los roles y privilegios.
Con esta información, se puede deducir que el diccionario debe ser consultado cada vez
que hay una sentencia SQL para la manipulación de datos, durante su compilación, para
comprobar si existe la tabla a la que referencia el usuario en su esquema, si tiene

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
6/7
permisos sobre ella, etc.
Si es así, se pasará la sentencia al optimizador, que elegirá un plan de ejecución, se
ejecutará, accediendo a los datos y se devolverá el resultado.

Ilustración 2: Ejecución sentencia SQL

5. Conclusión (resumen, lo que definen los DDL en cada


uno de los 3 niveles)
Desde el modelo ANSI, las BBDD están estructuradas en tres niveles con el fin de
separar la implementación física de lo que ve el usuario (niveles físico o interno y
externo respectivamente).
Los lenguajes de definición de datos son los que tienen las sentencias necesarias para
definir la BBDD en cada uno de los tres niveles:
• a nivel físico, con la creación de punteros, la asignación de las tablas al espacio
físico de almacenamiento, el modo de acceso a los datos, etc.
• A nivel lógico, con la creación de los esquemas, sus restricciones, la relación
entre esquemas, etc.
• A nivel externo, para definir las vistas o subesquemas de usuario en los que se le
permitirá a cada tipo de usuario un tipo de acceso, buscando la independencia
entre lo que ve el usuario y las aplicaciones y la implementación física de la
BBDD.
En teoría, debería también haber un lenguaje de definición para cada uno de los niveles
ANSI (esto haría más real la separación entre niveles ya que, desde el lenguaje de
definición de vistas no se podría modificar la estructura interna). Sin embargo, para
hacerlo más fácil a los usuarios, lo normal es encontrarnos un único lenguaje con

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15


TEMA 35aj - La definición de los datos. Niveles de descripción. Lenguajes. Diccionario de datos.doc
7/7
funciones que cubran los tres niveles.

www.xjesus.net Impreso: 23/06/2006 13:15:00 Modificado: 23/06/2006 13:15

También podría gustarte