Archive for the 'Bases de datos' Category

Trabajo práctico de bases de datos

Introducción

Este trabajo tiene como fin mostrar la estructura y diseño de la base de datos de SNFlog, un sitio Web que hace unos años está en funcionamiento.

SNFlog, en resumidas palabras, permite a los cibernautas crear fotologs, configurarlo (colores, fuente) y subir fotos al mismo; que serán vistas, comentadas y votadas por el resto de los visitantes del sitio.

Para comenzar se verá la estructura de la base de datos, para exponer todo el código SQL que se utilizó para crearla.

Se presentarán también el código para la creación de: vistas, procedimientos almacenados  y desencadenadores.

Estructura dela Basede Datos

Para comenzar vamos a analizar la estructura de la base de datos que utiliza el sistema para su funcionamiento. A continuación, el canónico de la base de datos:

En el diagrama anterior podemos ver por completo la estructura completa de la base de datos.

Código SQL de la base de datos

A continuación se adjuntará todo el código SQL necesario para la creación de la base de datos anteriormente esquematizada.

Tablas

CREATE TABLE ‘comentarios’ (

‘codCom’ int(11) NOT NULL auto_increment,

‘codPos’ int(11) NOT NULL default ‘0’,

‘codUsu’ int(10) unsigned NOT NULL,

‘Nombre’ varchar(50) default NULL,

‘eMail’ varchar(50) default NULL,

‘Comentario’ mediumtext NOT NULL,

‘Fecha’ datetime NOT NULL default ‘0000-00-00 00:00:00’,

PRIMARY KEY  (‘codCom’),

KEY ‘codPos’ (‘codPos’),

KEY ‘codUsu’ (‘codUsu’)

)

CREATE TABLE ‘estilos’ (

‘codest’ int(10) unsigned NOT NULL auto_increment,

‘codusu’ int(10) unsigned NOT NULL default ‘0’,

‘fondo’ varchar(8) NOT NULL default ‘‘,

‘color’ varchar(8) NOT NULL default ‘‘,

‘acolor’ varchar(8) NOT NULL default ‘‘,

‘titulocolor’ varchar(8) NOT NULL default ‘‘,

‘fuente’ varchar(20) NOT NULL default ‘‘,

PRIMARY KEY  (‘codest’),

KEY ‘codusu’ (‘codusu’)

);

CREATE TABLE ‘favoritos’ (

‘codFav’ int(11) NOT NULL auto_increment,

‘codUsu’ int(10) unsigned NOT NULL default ‘0’,

‘codUsuFav’ int(10) unsigned NOT NULL default ‘0’,

PRIMARY KEY  (‘codFav’),

KEY ‘codusu’ (‘codUsu’),

KEY ‘codusu2’ (‘codUsuFav’)

);

CREATE TABLE ‘links’ (

‘codLin’ int(11) NOT NULL auto_increment,

‘codUsu’ int(10) unsigned NOT NULL default ‘0’,

‘Titulo’ varchar(50) NOT NULL default ‘‘,

‘Link’ varchar(80) NOT NULL default ‘‘,

PRIMARY KEY  (‘codLin’),

KEY ‘ind_codUsu’ (‘codUsu’)

);

CREATE TABLE ‘pagamigas’ (

‘codpag’ int(10) NOT NULL auto_increment,

‘pagina’ varchar(50) NOT NULL default ‘‘,

‘url’ varchar(50) NOT NULL default ‘‘,

PRIMARY KEY  (‘codpag’)

);

CREATE TABLE ‘posteos’ (

‘codPos’ int(10) NOT NULL auto_increment,

‘codUsu’ int(10) unsigned NOT NULL default ‘0’,

‘Titulo’ varchar(50) NOT NULL default ‘‘,

‘Descripcion’ longtext,

‘Fecha’ datetime NOT NULL default ‘0000-00-00 00:00:00’,

‘Visitas’ int(10) unsigned NOT NULL default ‘0’,

‘Comentarios’ int(11) NOT NULL default ‘0’,

PRIMARY KEY  (‘codPos’),

KEY ‘codusu’ (‘codUsu’)

);

CREATE TABLE ‘useronline’ (

‘id’ int(10) NOT NULL auto_increment,

‘ip’ varchar(15) NOT NULL default ‘‘,

‘timestamp’ varchar(15) NOT NULL default ‘‘,

‘registrado’ int(10) NOT NULL default ‘0’,

‘codpos’ mediumtext character set utf8 collate utf8_bin NOT NULL,

PRIMARY KEY  (‘id’),

UNIQUE KEY ‘id’ (‘id’)

);

CREATE TABLE ‘usuarios’ (

‘codUsu’ int(10) unsigned NOT NULL auto_increment,

‘Alias’ varchar(30) NOT NULL default ‘‘,

‘Contrasena’ varchar(50) NOT NULL default ‘‘,

‘Nombre’ varchar(20) NOT NULL default ‘‘,

‘Apellido’ varchar(15) NOT NULL default ‘‘,

‘eMail’ varchar(70) NOT NULL default ‘‘,

‘Titulo’ varchar(100) NOT NULL default ‘‘,

‘fechaNac’ date NOT NULL default ‘0000-00-00’,

‘Sexo’ enum(‘‘,’Masculino’,’Femenino’) NOT NULL default ‘‘,

‘Estilo’ varchar(10) NOT NULL default ‘‘,

‘Celular’ bigint(10) unsigned default NULL,

‘FechaAlta’ datetime NOT NULL default ‘0000-00-00 00:00:00’,

‘FechaActividad’ datetime NOT NULL default ‘0000-00-00 00:00:00’,

‘privilegios’ int(11) NOT NULL default ‘0’,

‘mailcomentario’ tinyint(1) NOT NULL default ‘1’,

‘maillimite’ tinyint(1) NOT NULL default ‘1’,

‘comenta’ int(1) NOT NULL default ‘0’,

PRIMARY KEY  (‘codUsu’),

KEY ‘codusu’ (‘codUsu’),

KEY ‘alias_codusu’ (‘Alias’,’codUsu’)

);

CREATE TABLE ‘votaciones’ (

‘codvot’ int(11) NOT NULL auto_increment,

‘codpos’ int(11) NOT NULL default ‘0’,

‘votacion’ int(5) NOT NULL default ‘0’,

PRIMARY KEY  (‘codvot’),

KEY ‘codpos’ (‘codpos’)

);

Restricciones

ALTER TABLE ‘comentarios’

ADD CONSTRAINT ‘comentarios_ibfk_1’ FOREIGN KEY (‘codPos’) REFERENCES ‘posteos’ (‘codPos’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘estilos’

ADD CONSTRAINT ‘estilos_ibfk_1’ FOREIGN KEY (‘codusu’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘favoritos’

ADD CONSTRAINT ‘favoritos_ibfk_1’ FOREIGN KEY (‘codUsu’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE,

ADD CONSTRAINT ‘favoritos_ibfk_2’ FOREIGN KEY (‘codUsuFav’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘links’

ADD CONSTRAINT ‘links_ibfk_1’ FOREIGN KEY (‘codUsu’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘posteos’

ADD CONSTRAINT ‘posteos_ibfk_1’ FOREIGN KEY (‘codUsu’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘votaciones’

ADD CONSTRAINT ‘votaciones_ibfk_1’ FOREIGN KEY (‘codPos’) REFERENCES ‘posteos’ (‘codPos’) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ‘useronline’

ADD CONSTRAINT ‘useronline_ibfk_1’ FOREIGN KEY (‘codUsu’) REFERENCES ‘usuarios’ (‘codUsu’) ON DELETE CASCADE ON UPDATE CASCADE;

Vistas

CREATE VIEW inicio AS

SELECT MAX( P.codpos ) M, U.alias A, MAX( UNIX_TIMESTAMP( P.fecha ) )

FROM posteos P INNER JOIN usuarios U USING ( codusu ) GROUP BY A

ORDER BY M DESC LIMIT 16

Procedimientos almacenados

CREATE PROCEDURE votar (IN icodpos INT,IN ivoto INT)

begin

INSERT INTO votaciones (codpos,votacion) VALUES (icodpos,ivoto);

end //

Desencadenadores

CREATE TRIGGER estilo AFTER INSERT ON usuarios

FOR EACH ROW

INSERT INTO estilos(codusu, fondo, color, acolor, titulocolor, fuente ) VALUES (NEW.codusu, ‘#F0F0D0’, ‘#406080’, ‘#1030C0’, ‘#909090’, ‘Arial’)

 

Objetivos de la organización de las bases de datos

Objetivos primarios de la organización de las bases de datos

  1. Los datos podrán utilizarse de múltiples maneras.
  2. Se protegerá la inversión intelectual.
  3. Bajo costo.
  4. Menos proliferación de datos.
  5. Desempeño.
  6. Claridad.
  7. Facilidad de uso.
  8. Flexibilidad.
  9. Rápida atención de interrogantes no provistos.
  10. Facilidad para el cambio.
  11. Precisión y coherencia.
  12. Reserva.
  13. Protección contra pérdida o daño.
  14. Disponibilidad.

Objetivos secundarios de la organización de las bases de datos

  1. Independencia física de los datos.
  2. Independencia lógica de los datos.
  3. Redundancia controlada.
  4. Adecuada rapidez de acceso.
  5. Normalización de los datos dentro de un organismo.
  6. Diccionario de datos.
  7. Interfaz de alto nivel con los programadores.
  8. Lenguaje del usuario final.
  9. Controles de integridad.
  10. Fácil recuperación en caso de fallo.
  11. Afinación.
  12. Ayudas para el diseño y la supervisión.
  13. Migración o reorganización automática.

El Administrador de bases de datos (DBA)

El rol del DBA

Un administrador de bases de datos debe cubrir un conjunto de tareas y responsabilidades; entre algunas de ellas podríamos mencionar:

  • Mantener la integridad de los datos: errores en la carga de datos, fallas en la programación de las aplicaciones que acceden a ella, usos malintencionados de la base de datos y fallas de hardware o software que dan soporte al SGBD.
  • Mantener la seguridad de los datos: protección de los datos frente al uso malintencionado o no autorizado (asignando sólo los recursos necesarios para cada usuario que interactúa con la base de datos).
  • Mantener la disponibilidad de los datos: se debe dar el servicio de datos no siempre, sino en todos los momentos en que se requiera. Se deben contemplar contingencias, como por ejemplo corrupción de datos. Además, la base de datos forma, en conjunto con la red y el servidor, un sistema integral; todos ellos deben estar disponibles para que el sistema funcione.

Funciones básicas y responsabilidades

  • Crear la base de datos y las tablas.
  • Administrar la concurrencia (de lectura y actualización).
  • Optimizar el acceso a datos: además de funcionar correctamente, las consultas a la base de datos deben ser lo más rápidas posibles (utilizando índices).
  • Definir el esquema conceptual: diseño físico y esquema interno.
  • Vincularse a los usuarios: asesoramientos para desarrolladores, ayudar a los usuarios finales, etc.
  • Procedimientos de respaldo y recuperación.
  • Monitoreo: vigilar las actividades de los usuarios en la base de datos, a través de informes generados por el SGBD.
  • Rendimiento: estadísticas en tiempo de ejecución. Cuando surja un problema de rendimiento, el DBA deberá analizar si se debe modificar la estructura de la base de datos o el sistema que la utiliza.
  • Actualizaciones: se deben analizar las nuevas versiones de los SGBD a fin de ver si son o no convenientes para su implementación.
  • Documentación: cada una de las modificaciones realizadas en las bases de datos debe ser documentada, para que en caso de futuras pérdidas o problemas, se pueda conocer cuál fue su detonante.

 

El perfil del DBA

Tipos de perfiles

Cuando la organización en la que un DBA trabaja es pequeña, su papel es muy amplio y a veces es denominado “hombre orquesta”. En las empresas grandes, existen diversas personas, ocupándose cada una de una función específica.

Experiencia profesional

Un DBA debe tener al menos algo de experiencia en el rubro, de lo contrario no estaría en condiciones de ocupar un cargo de tal envergadura. Hay que destacar, además, que una persona que trabajó en una organización pequeña, haciendo de “hombre orquesta”, tendrá una experiencia diferente a aquella que lo hizo en una gran organización.

¿Qué perfil es mejor? Ninguno, ambos. Lo ideal sería tener un poco de cada uno, pero eso es muy complicado de lograr.

Conclusión

El DBA tiene muchas responsabilidades y obligaciones que debe cumplir. A todo eso se le suman sus capacidades técnicas, necesarias para poder desempeñarse completamente en su papel.

Almacenamiento de registros y organizaciones de ficheros primarios

Introducción

Una base de datos debe almacenarse el algún medio físico, del cual el SGBD podrá recuperar y escribir datos. Los medios de almacenamiento de una computadora tienen una jerarquía de almacenamiento, que incluye:

  • Almacenamiento primario (memoria principal): caché y memoria RAM.
  • Almacenamiento secundario (almacenamiento masivo): disco rígido, memorias flash, CD-ROM (juke-boxes ópticos), DVD y cintas magnéticas (juke-boxes de cintas).

Almacenamiento de bases de datos

¿En qué jerarquía se almacenan? En la memoria principal nos quedaríamos sin espacio rápidamente; además es volátil y muy costosa. Es por eso que en casi todas las ocasiones, al momento de almacenar una base de datos se lo hace en un soporte secundario, más específicamente: en discos magnéticos (las cintas magnéticas se descartan por su baja velocidad de transferencia).

El SGBD ofrece diversas formas de organizar los datos físicamente en el disco, y es tarea del ABD elegir de entre ellos el más conveniente para cada caso. Algunas organizaciones podrían ser: ficheros no ordenados, ficheros ordenados, ficheros de direccionamiento calculado y árboles B.

Dispositivos de almacenamiento secundario

Descripción del hardware de los dispositivos de disco

Los discos están hechos de un material magnético, y contiene:

  • Paquete de discos.
  • Discos.
  • Cilindros.
  • Pistas.
  • Sectores.
  • Bloques.
  • Espacios entre bloques.

A todo lo anteriormente mencionado se le suma la cabeza de escritura/lectura, el brazo magnético, el impulsor, controlador de disco (interfaz).

Todos estos elementos trabajan en conjunto, y tienen diferentes tiempos: de búsqueda (12 a 14), de rotación y de transferencia (12 a 60).

Actualmente, los discos pueden ser considerados “cuellos de botella”, ya que los procesadores actuales tienen tiempos de respuesta mucho mas rápidos.

Dispositivos de almacenamiento en cinta magnética

Son de acceso secuencial y requieren una unidad particular para ser leídas. Pueden almacenar de 1,6 a 6,25 KBytes por pulgada, con un espacio entre bloques de 0,6 pulgadas.

Son muy utilizadas para realizar copias de seguridad de grandes bases de datos por su gran capacidad, pero se descartan para el almacenamiento on-line debido a su diminuta velocidad.

Arquitectura de un SGBD e independencia de datos

Arquitectura de los tres esquemas

  • Nivel interno: estructura física del almacenamiento de datos.
  • Nivel conceptual: describe la estructura conceptual completa de la base de datos para una comunidad de usuarios. Oculta detalles de almacenamiento, y se concentra en describir entidades, tipos de datos, relaciones, etc.
  • Nivel externo: también llamado de vistas, describe la parte de la base de datos que le interesa a un grupo de usuario determinado, y oculta a ese mismo grupo lo restante de la base de datos.

Cada uno de estos niveles, tal y como el modelo OSI, interactúa con su nivel vecino. Cada uno transforma solicitudes en resultados; proceso que se denomina correspondencia o transformación.

Independencia de datos

Es la capacidad de modificar el esquema de un nivel sin tener que modificar el superior. Podríamos diferenciar dos independencias de datos:

  • Lógica: modificación del esquema conceptual sin la alteración del externo.
  • Física: modificación del esquema interno, sin la modificación del conceptual.

Modelos de datos, esquemas e instancias

La característica más importante en el enfoque de bases de datos es la abstracción de los datos, que ocultan detalles que a la mayoría de los usuarios no les interesa. Un modelo de datos (colección de conceptos que sirven para describir la estructura de una base de datos (tipos de datos, vínculos, restricciones, etc.)) proporciona los medios necesarios para lograr esa abstracción.

Cada vez es más común incluir en el modelo de datos especificaciones del comportamiento de una aplicación. Esto permite dar un conjunto de operaciones válidas definidas por el usuario, que están permitidas sobre los objetos de la base de datos.

Categorías de los modelos de datos

  • Alto nivel (conceptuales): tal y como la perciben los usuarios. Utiliza conceptos como entidad, atributo, vínculo. También podríamos incluir los llamados “modelos de datos orientados a objetos”.
  • Modelo de representación (implementación): los usuarios finales lo entienden, a pesar de no estar tan alejados de la forma en que se almacenan. Entre los más utilizados tenemos al relacional, de red y jerárquico.
  • Bajo nivel (físicos): como los ve la computadora. Describe como se almacenan los datos, definiendo: formato y ordenaciones de registros y caminos de acceso.

Esquemas, instancias y estado de la base de datos

El esquema de la base de datos se refiere a la descripción de la misma, definida en el diseño y acostumbrada a ser modificada para nuevos requisitos del sistema. La representación de un esquema, cosa que se hace muy a menudo, se denomina diagrama del esquema, que integra datos como: nombres de los tipos de registro y de los elementos de datos.

Los datos que la base de datos almacena, en un determinado momento se llama estado de la base de datos o conjunto actual de instancias. Cada vez que se actualiza, carga o elimina un registro, de pasa de un estado de la base de datos a otro.

Distinguir entre el esquema y el estado de una base de datos es muy importante. Cuando se define una base de datos sólo se especifica su esquema. Ahora, cuando la probamos, cargando algunos datos, pasa a un “estado inicial”. Cada vez que se haga algún otro cambio, pasará a otro estado. Siempre, en todo momento, toda base de datos tiene un “estado actual”.

Bases de datos y usuarios de bases de datos

Introducción

Una base de datos es una colección de datos relacionados con un significado implícito.

Propiedades implícitas de una base de datos

  • Representa aspectos del mundo real (minimundo o universo del discurso).
  • Sus datos son coherentes y tienen significados inherentes.
  • Se diseña, construye y puebla con datos para un propósito específico.

Sistemas de gestión de bases de datos

Un sistema de gestión de bases de datos (data base managment system) es una colección de programas que permiten a los usuarios crear y mantener bases de datos.

Otra definición: es un sistema software de propósito general que ayuda a la hora de definir (tipos de datos, restricciones), construir (almacenar los datos en algún medio) y manipular (consultas, actualizaciones) bases de datos para distintas aplicaciones.

Diferencias entre “archivos planos” con bases de datos

  1. Naturaleza auto descriptiva: además de los datos propiamente dichos, una base de datos almacena la definición completa de la estructura de la base de datos y sus restricciones. Esta información es almacenada en el catálogo del sistema y es denominada metadatos. Mientras con un archivo plano pueden acceder algunos programas específicos, un SGBD puede acceder a múltiples bases de datos extrayendo sus definiciones del catálogo.
  2. Abstracción de datos: la estructura de los ficheros viene integrada en los programas que acceden a ellos. Con una base de datos, esto deja de ser así, ya que las definiciones están en el catálogo. Esto permite una independencia entre los programas y los datos, y hace que las aplicaciones no deban ser totalmente modificadas a la hora de realizar modificaciones en la estructura de los datos.
  3. Soporte de múltiples vistas de los datos: a diferencia de cómo ocurría con los archivos planos, una base de datos puede tener varios usuarios, los cuales pueden requerir una vista diferente de la base de datos. Una vista es un subconjunto de la base de datos, cuyos elementos le son de importancia a un grupo definido de usuarios.
  4. Compartimiento de datos y procesamiento de transacciones multiusuarios: una base de datos permite el acceso simultáneo de la base de datos por parte de los usuarios. El SGBD debe controlar la concurrencia para controlar la consulta y sobre todo la actualización de la base de datos de manera concurrente.

Los actores en escena

En una base de datos pequeña, es una sola persona la que la define, construye y manipula. En bases de datos de tamaño medio o grande, ya son varias las personas y funciones que tenemos:

  • Administrador de la base de datos: autoriza accesos, coordina y vigila su utilización, compra los recursos de hard y soft que sean necesarios.
  • Diseñador de la base de datos: identifican los datos que se almacenarán en la base de datos, y elige las estructuras apropiadas para almacenarlos. Para ello deben comunicarse con los usuarios finales, para así poder comprender sus necesidades.
  • Finales: personas cuyo trabajo requiere acceder a las bases de datos, ya sea para consultarlas o realizar acciones de ingreso o modificación de los datos. Existen 4 categorías de usuarios finales:
    • Ocasionales: la utilizan de vez en cuando, requiriendo diferente información en cada ocasión.
    • Simples o paramétricos: su trabajo gira en torno a la base de datos, haciendo uso de las llamadas “transacciones programadas”.
    • Avanzados: están familiarizados con los recursos que brinda un SGBD como para implementar aplicaciones que cumplan con sus complejos requerimientos.
    • Autónomos: mantienen sus propias bases de datos utilizando paquetes comerciales que cuentan con interfaces de fácil uso.
  • Analistas de sistemas y programadores de aplicaciones: determinan los requerimientos de los usuarios finales y desarrollan aplicaciones con transacciones controladas y programadas para satisfacer dichos requerimientos. Deben conocer todas las capacidades del SGBD.

Hasta aquí vimos aquellos actores que más se marcan, pero también podríamos mencionar los siguientes:

  • Diseñadores e implementadotes del SGBD.
  • Desarrolladores de herramientas.
  • Operadores y personal de mantenimiento.

Ventajas de utilizar un SGBD

  • Control de la redundancia: la redundancia es el almacenamiento de un mismo dato en diferentes lugares. Debe crearse un diseño que almacene cada dato en un solo lugar de la base de datos. En ocasiones, por cuestiones de rendimiento, se puede ver la posibilidad de que exista redundancia, pero ésta debe ser controlada.
  • Restricción de los accesos no autorizados: es la asignación (a usuarios o grupos de usuarios) de permisos bajo contraseña. Dichos permisos pueden referirse tanto a los datos que pueden visualizar, como qué acciones puedan realizar sobre los mismos (consultas, modificaciones, etc.). El SGBD debe contar con un subsistema de seguridad y autorización que permita crear cuentas de usuario y definir permisos/restricciones sobre ellas.
  • Suministro de almacenamiento persistente de objetos y estructuras de datos de programas: se denominan así porque sobreviven cuando finaliza la ejecución del programa, pudiendo ser recuperadas por otro sin problemas.
  • Capacidad de realizar inferencias y acciones usando reglas: algunos sistemas de base de datos tienen la capacidad de definir reglas de deducción para inferir nueva información a partir de los hechos ocurridos en la base de datos. A este tipo de base de datos de la denomina deductivas.
  • Suministro de múltiples interfaces de usuario: en una base de datos interactúan, como vimos, múltiples personas. Éstas tienen diferentes niveles de conocimiento, y por lo tanto un SGBD debe suministrar múltiples interfaces para cada uno de ellos. Es así que se permitirá consultas directas para programadores y analistas, mientras que sólo se definirán gráficos y formularios parametrizados para los usuarios finales.
  • Representación de vínculos complejos entre los datos.
  • Garantizar el cumplimiento de las restricciones de integridad: un SGBD debe controlar en todo momento que las restricciones de integridad referencial sean cumplidas. La mayoría será controlada desde el mismo gestor de base de datos, pero algunas tal vez sean controladas desde el mismo programa que utiliza el usuario.
  • Suministro de copias de seguridad y recuperación: todo SGBD debe brindar soporte para realizar backups y restore en todo momento, pudiendo configurarse dichas acciones en períodos establecidos.

¿Cuándo NO utilizar un SGBD?

No siempre es adecuado utilizar todo un sistema de gestión de bases de datos; en ocasiones, con un simple archivo plano nos basta para solucionar nuestros problemas, y no es necesario llegar a inversiones innecesarias, generalizar los procesos o tener un nivel de seguridad tan estricto.

Aquellas situaciones pueden ser:

  • La base de datos y las aplicaciones son muy simples, bien definidas y probablemente no sufran futuros cambios.
  • Algunos programas tienen restricciones de tiempo real, que no se podrían cumplir con los costos extras de un SGBD (configuraciones internas, por ejemplo).
  • No se requiere acceso multiusuario.

Nivel interno, conceptual y externo de una base de datos

En una base de datos podemos definir 3 niveles:

  1. Interno: especifica como se guardarán físicamente la base de datos (caminos de accesos).
  2. Conceptual: describe la estructura de la base de datos para una comunidad de usuarios. Oculta los detalles de la estructura física de almacenamiento y se concentra en describir: entidades, tipos de datos, etc.
  3. Externo: describe la parte de la DB que interesa a un grupo de usuarios determinados, ocultando el resto de la base de datos (vistas de usuarios).