Está en la página 1de 60

Unidad III

Lenguaje de consultas SQL.

Introducción:

Objetivo:

• Aprender a manipular el lenguaje de definición de datos.


• Conocer sobre los gestores de administración de base de datos.

Secuencia de aprendizaje




Tema 01: Estructura de las bases de datos relacionales.

Introducción:

Objetivo:

• Comprender la terminología utilizada en el álgebra relacional, como


fundamento previo a la accesibilidad de las bases de datos.

• Aprender a manipular datos basados en el álgebra relacional.


1. EL LENGUAJE DE DEFINICIÓN DE DATOS

Esos objetos pueden ser: tablas, vistas, índices y otros objetos relacionados con la
definición de la base de datos. Los objetos son manipulados y creados por los
usuarios. En principio sólo los administradores y los usuarios propietarios pueden
acceder a cada objeto, salvo que se modifiquen los privilegios del objeto para
permitir el acceso a otros usuarios.
 
Hay que tener en cuenta que ninguna instrucción DDL puede ser anulada por una
instrucción ROLLBACK (la instrucción ROLLBACK está relacionada con el uso de
transacciones que se tratan en otros de los lenguajes del SQL estándar) por lo que
hay que tener mucha precaución a la hora de utilizarlas, es decir, las instrucciones
DDL generan acciones que no se pueden deshacer (salvo que dispongamos de alguna
copia de seguridad).
 
En muchos de nuestros análisis sobre SQL y bases de datos relacionales hemos
aceptado un conjunto de relaciones como predefinidas. El conjunto de relaciones en
una base de datos se debe especificar en términos de un lenguaje de definición de
datos (LDD o en comúnmente en inglés DDL).

El LDD de SQL permite la especificación no solo de un conjunto de relaciones, sino


también de alguna información relativa a esas relaciones, incluyendo:

• El esquema de cada relación.


• El dominio de valores asociado a cada atributo.
• Las restricciones de integridad.
• El conjunto de indices que se deben mantener por cada relación.
• Información de seguridad y autorización para cada relación.
• La estructura de almacenamiento físico de cada relación en disco.

Se analizará a continuación la definición de esquemas y de dominios de valores.

2. TIPOS DE DOMINIO EN SQL

La norma SQL soporta un conjunto de tipos de dominios predefinidos, que incluye


los siguientes:

• char (n): es una cadena de caracteres de longitud fija, con una longitud n
especificada por el usuario. También se puede utilizar la palabra completa
character.

• varchar (n): es una cadena de caracteres de longitud variable, con una longitud n
especificada por el usuario. También se puede utilizar la forma completa
character varying.

• Int: es un entero (un subconjunto finito de los enteros, que es dependiente de la


máquina). También se puede usar la palabra completa integer.

• smallint: es un entero pequeño (un subconjunto del dominio de los enteros,


también dependiente de la máquina).

• numeric (p,d): es un número en coma flotante, cuya precisión la especifica el


usuario. El número está formado por p dígitos (mas el signo), y de esos p dígitos,
d pertenecen a la parte decimal. Así, numero (3,1) permite que el número 44.5 se
alampe exactamente, mientras que los números 444.5 y 0.32 no se pueden
almacenar exactamente en un campo de este tipo.

• real double precisión: son respectivamente, números en coma flotante y números


en coma flotante de doble precisión, con precisión dependiente de la maquina.

• float (n): es un número en coma flotante, cuya precisión es de al menos n dígitos.

• date: es una fecha del calendario, que contiene un año (de cuatro dígitos), un
mes y un día del mes.

• time: es la hora del día, expresada en horas, minutos y segundos. Se puede usar
una variante time (p), para especificar el número de dígitos decimales para los
segundos (el número predeterminado es 0). También es posible almacenar la
información del uso horario junto al tiempo.

• timestamp: es una combinación de date y time. Se puede usar una variante,


timestampo(p), para especificar el número de dígitos decimales para los
segundos (el número predeterminado es 6).

Los valores de fecha y hora se pueden especificar como:


date ‘2001-04-25’
time ’09:30:00’
timestamp ‘2001-04-25 10:29:01.45’

Las fechas se deben especificar en el formato año seguido de mes y de día, como se
muestra. El campo segundos de time y timestamp pueda tener parte decimal, como
se ha mostrado. Se puede usar una expresión de la forma cast e as t para convertir
una cadena de caracteres ( o una expresión de tipo cadena e al tipo t, donde t es
date, time o timestamp. La cadena debe estar en el formato adecuado como se
indicó al comienzo de este párrafo.

Para extraer campos individuales de un valor d date o time se puede usar extracto
(campo from d), donde campo puede ser year, month, day, hour, minute o second.

Las cadenas de caracteres de longitud variable, la fecha y la hora no forman parte


de la norma SQL

SQL permite realizar operaciones de comparación sobre todos los dominios que se
listan aquí, y permite realizar operaciones aritméticas y de comparación sobre los
diferentes dominios numéricos. SQL también proporciona un tipo de datos llamado












invernal y permite realizar cálculos basados en fechas, horas e intervalos.

SQL permite realizar operaciones de comparación sobre todos los dominios que se
listan aquí, y permite realizar operaciones aritméticas y de comparación sobre los
diferentes dominios numéricos. SQL también proporciona un tipo de datos llamado
interval y permite realizar cálculos basados en fechas, horas e intervalos.

Por ejemplo, si x e y son del tipo date, entonces x-y será un intervalo cuyo valor es
el número de días desde la fecha x hasta la y. De forma análoga, al sumar o restar
un intervalo de una fecha u hora, se obtendrá como resultado otra fecha u hora,
respectivamente.

A menudo es útil poder comparar valores de dominio compatibles. Por ejemplo, como
cada entero perteneciente al tipo smallint es un entero, una comparación x < y,
donde x es de tipo smallint e y es de tipo int (o viceversa), es válida. Este tipo de
comparación se lleva a cabo transformando primero el número x es un entero. Una
transformación este tipo se denomina coerción.

La coerción de tipos se usa normalmente en los lenguajes de programación comunes,


así como en los sistemas de bases de datos.

Como ejemplo, supóngase que el dominio de nombre-cliente es una cadena de


caracteres de longitud 20 y que el dominio de nombre-sucursal es una cadena de
caracteres de longitud 15. Aunque las longitudes de las cadenas de caracteres
difieran, la norma SQL los considerará los tipos compatibles.

El valor null pertenece a todos los dominios. Para ciertos atributos, sin embargo, los
valores nulos pueden no ser apropiados.

Considerese una tupla de la relación cliente donde el nombre-cliente es nulo. Una


dupla de este tipo asociaría una calle y una calle y una ciudad a clientes anónimos, es
decir, no contendrán información útil. En casos de este tipo, seria deseable prohibir
el uso de valores nulos, restringiendo el dominio de nombre-cliente para excluir los
valores nulos.

SQL permite incluir en la declaración de dominio de un atributo la especificación


not full y de este modo se prohibe la inserción de un valor nulo para este atributo.



Cualquier modificación de la base de datos que conduzca a la inserción de un valor


nulo en un dominio especificado como not full, generará un diagnostico de error.
Existen muchas situaciones en las que seria deseable la prohibición de valores nulos.
Un caso particular donde es esencial prohibir valores nulos es en la clave primaria
de un esquema de relación. De este modo, en el ejemplo bancario nombre-cliente,
que es la clave primaria de la relación.

3. CREACIÓN DE ESQUEMAS EN SQL

Un esquema de relación se define utilizando la instrucción create table de la


siguiente manera:

Donde r es el nombre de la relación, cada Ai es el nombre de un atributo del


esquema de relación r y Di es el dominio de los valores del atributo Ai. Las
restricciones de integridad válidas incluyen:
 
primary key (Aj1, Aj2,…,Ajm)
La especificación de clave primaria dice que los atributos Aj1, Aj2,…,Ajm forman la
clave primaria de la relación. Los atributos clave primaria deben ser no nulos y
únicos, es decir, ninguna tupla puede tener un valor nulo para un atributo de la clave
primaria y ningún par de tuplas de la relación pueden ser iguales en todos los
atributos clave primaria1. Aunque la especificación de clave primaria es opcional es,
generalmente, buena idea especificar una clave primaria para cada relación.
check (P)
la cláusula check especifica un predicado P que debe satisfacer cada tupla de la
relación. La instrucción de creación de tabla create table también incluye otras
restricciones de integridad.
 
En la siguiente figura se representa una definición parcial en SQL de la base de
datos bancaria.

Obsérvese que no se intenta modelar con precisión el mundo real en el ejemplo de la


base de datos bancaria. En el mundo real, muchas personas tienen el mismo nombre
por lo que nombre-cliente no sería una clave primaria de cliente; probablemente se
usaría un id-cliente como clave primaria. Se usa nombre-cliente como clave primaria
para mantener el esquema de la base de datos simple y pequeño.
 
Si como resultado de una inserción o modificación, una tupla toma valores nulos para
cualquiera de los atributos que forman parte de la clave primaria, o si tiene el
mismo valor que otra tupla de la relación para estos, SQL notifica el error y la
actualización no se lleva a cabo. De forma análoga ocurre lo mismo si falla la
condición check de una tupla.
 
De manera predeterminada, null es un valor válido para cualquier atributo en SQL, a
menos que se especifique con not null. Un atributo se puede declarar para que no
sea nulo de la forma siguiente.

SQL también soporta una restricción de integridad:

La especificación unique indica que los atributos Aj1, Aj2,…,Ajm forman una clave


candidata, es decir, no puede haber dos tuplas en la relación con todos los atributos
que forman la clave candidata iguales. Sin embargo, se permite que los atributos
que forman la clave candidata sean nulos, a menos que se hayan declarado como not
null. Recuérdese que un valor nulo no es igual a ningún otro valor.

Un uso habitual de la cláusula check es el de asegurar que los valores de los


atributos satisfacen unas condiciones determinadas, constituyendo así un poderoso
sistema de tipos. Por ejemplo, la cláusula check en la instrucción de creación de una
tabla para la relación sucursal comprueba que el valor para el atributo activo es un
entero positivo. Considérese el siguiente ejemplo:

En este ejemplo se utiliza la cláusula check para simular un tipo enumerado


especificando que nivel-estudios debe ser “Graduado”, “Licenciado” o “Doctorado”.

Una relación inicialmente está vacía. Se pueden utilizar instrucciones de inserción


para introducir datos en la misma. Muchas bases de datos relacionales tienen
utilidades de carga para la introducción de un conjunto inicial de tuplas en una
relación.

RESUMIENDO LA CREACIÓN DE LAS TABLAS EN UNA BASE DE DATOS

En la mayoría de documentación relacionada con la creación de tablas en una base


datos, vemos que se incluyen las distintas restricciones permisibles al momento de
la creación de las tablas, a continuación se muestra la sintáxis más general que
permite la creación de las tablas:

Y las restricciones serían:

NOT NULL: establece la obligatoriedad de que la columna tenga un valor no nulo.


Se debe especificar junto a la columna a la que afecta.

UNIQUE:

CHECK:

PRIMARY KEY:

FOREIGN KEY:

Se puede forzar que cuando una fila de la tabla referenciada sea borrada, todas las
filas de esta tabla cuya clave ajena coincida con la clave borrada se borren también.
Esto se consigue añadiendo ON DELETE CASCADE en la definición de la clave
ajena.

4. INTEGRIDAD REFERENCIAL

Las llaves primarias pueden especificarse como parte de la instrucción create


table, usando la cláusula foreing key podremos hacer referencia a estas llaves
primarias. De manera predeterminada, una clave externa referencia los atributos
que forman la clave primaria de la tabla referenciada.

SQL también soporta una versión de la cláusula referente, donde se puede


especificar explícitamente una lista de atributos de la relación referenciada. Esta
lista se debe declarar como clave candidata de la relación referenciada.

Se puede usar la siguiente forma abreviada como parte de la definición de un


atributo para declarar que el atributo forma una clave externa:

Cuando se viola una restricción de integridad referencial, el procedimiento normal


es rechazar la acción que provocó la violación. Sin embargo, la cláusula foreign
key puede especificar que si una acción de borrado o de actualización de la relación
a la que hace referencia viola la restricción, en lugar de rechazar la acción, hay que
adoptar las medidas para modificar la tupla de la relación que hace la referencia
con objeto de restaurar la restricción.
 
Veamos cómo se haría:

5. MODIFICACIÓN DE ESQUEMAS

La definición de una tabla base o de otros elementos con nombre del esquema se
puede cambiar con el comando ALTER. Para las tablas base, las posibles acciones de
alteración incluyen la adición o eliminación de una columna (atributo), el cambio de la
definición de una columna, y la adición o eliminación de restricciones.

La sentencia ALTER TABLE sirve para modificar la estructura de una tabla que ya
existe. Mediante esta instrucción podemos añadir columnas nuevas y eliminar
columnas. Hay que tener cuidado que cuando eliminamos una columna se pierden
todos los datos almacenados en ella.

También nos permite crear nuevas restricciones o borrar algunas existentes. La


sintaxis puede parecer algo complicada pero sabiendo el significado de las palabras
reservadas la sentencia se aclara bastante; ADD (añade), ALTER (modifica), DROP
(elimina), COLUMN (columna) y CONSTRAINT (restricción).

5.1 Cambiar de nombre a una tabla


De forma estándar SQL utiliza la siguiente sintaxis para cambiar el nombre de una
tabla de la siguiente manera:

Si observamos, la sintaxis es muy simple pero hay que tener cuidado cuando este
tipo de acciones se realicen por la integridad de datos que pueda existir.

5.2 Añadir columnas


Si requerimos agregar una columna, la sintaxis sería:

Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus
propiedades si es necesario (al estilo de CREATE TABLE).




Las nuevas columnas se añaden al final, no se puede indicar otra posición (hay que
recordar que el orden de las columnas no importa). Ejemplo:
ALTER TABLE facturas ADD (FECHA);

Muchas bases de datos requieren escribir la palabra COLUMN tras la palabra ADD.
Normalmente suele ser opcional.

5.3 Borrar columnas


Para borrar una columna basta con utilizar la cláusula drop column
(column es opcional) y el nombre de la columna que queremos borrar, se perderán
todos los datos almacenados en la columna. La sintaxis sería:

Elimina la columna indicada de manera irreversible e incluyendo los datos que


contenía. No se puede eliminar la única columna de una tabla que solo tiene esa
columna (habrá que usar DROP TABLE).

Ejemplo:
ALTER TABLE facturas DROP (fecha);

Al igual que en el caso anterior, en SQL estándar se puede escribir el texto


COLUMN tras la palabra DROP.
Otro ejemplo:
after table tab1 drop column col3
El resultado es el mismo, la columna col3 desaparece de la tabla tab1.



5.4 Modificar columnas
Permite cambiar el tipo de datos y propiedades de una determinada columna.
Sintaxis:

Los cambios que se permiten son:


• Incrementar precisión o anchura de los tipos de datos.
• Solo se puede reducir la anchura si la anchura máxima de un campo si esa
columna posee nulos en todos los registros, o todos los valores son tan pequeños
como la nueva anchura o no hay registros.
• Se puede pasar de CHAR a VARCHAR2 y viceversa (si no se modifica la
anchura).
• Se puede pasar de DATE a TIMESTAMP y viceversa.
• Cualquier otro cambio solo es posible si la tabla está vacía.

Ejemplo:

ALTER TABLE facturas MODIFY (fecha TIMESTAMP);

En el caso de SQL estándar en lugar de MODIFY se emplea ALTER (que además


opcionalmente puede ir seguridad de COLUMN). Por ejemplo:

ALTER TABLE facturar

ALTER COLUMN fecha TIMESTAMP;

5.5 Renombrar columna

Esto permite cambiar el nombre de una columna. La sintaxis es:

ALTER TABLE nombreTabla


RENAME COLUMN nombre Antiguo TO nombreNuevo






Ejemplo:

ALTER TABLE facturas

RENAME COLUMN fecha TO fechaYhora;

5.6 Agregar restricciones


Para añadir una nueva restricción en la tabla podemos utilizar la cláusula ADD e
indicar cuál es la restricción deseada. La sintaxis es la siguiente:

Donde TIPO RESTRICCIÓN puede ser cualquiera de las restricciones de columna


tales como PRIMARY KEY, NO NULL, UNIQUE, etc.

Ejemplo:
ALTER TABLE tab1 ADD CONSTRAINT c1 unique (col3)

Con este ejemplo estamos añadiendo a la tabla tab1 un índice único (sin duplicados)
llamado c1 sobre la columna col3.

5.7 Borrar restricciones


Para borrar una restricción basta con utilizar la cláusula drop constraint y el
nombre de la restricción que queremos borrar. La sintaxis es:

En este caso solo se elimina la definición de la restricción pero los datos


almacenados no se modifican ni se pierden.







Ejemplo:
alter table tab1 drop constraint
Con esta sentencia borramos el índice c1 creado anteriormente pero los datos de la
columna col3 no se ven afectados por el cambio.

6. BORRAR TABLAS

La sentencia drop table sirve para eliminar una tabla. No se puede eliminar una


tabla si está abierta, tampoco la podemos eliminar si el borrado infringe las reglas
de integridad referencial (si interviene como tabla padre en una relación y tiene
registros relacionados).

La sintaxis es la siguiente:

Tiene una repercusión más drástica que DELETE, ya que no puede recuperar la
información una vez realizada la sentencia.
 
La instrucción DROP TABLE seguida del nombre de una tabla, permite eliminar la
tabla en cuestión.
 
Al borrar una tabla:
• Desaparecen todos los datos.

• Cualquier vista y sinónimo referente a la tabla seguirá existiendo, pero ya no


funcionará (conviene eliminarlos).

• Las transacciones pendientes son aceptadas (COMMIT), en aquellas bases de


datos que tengan la posibilidad de utilizar transacciones.

• Lógicamente, solo se pueden eliminar las tablas sobre las que tenemos
permiso de borrado.




 Normalmente, el borrado de una tabla es irreversible, y no hay ninguna petición de
confirmación, por lo que conviene ser muy cuidadoso con esta operación.

7. BORRAR EL CONTENIDO DE UNA TABLA


 
Esta sentencia elimina todas las filas de una tabla sin registrar las eliminaciones
individuales de filas. Truncate table es similar a la instrucción DELETE sin una
cláusula WHERE; sin embargo, TRUNCATE TABLE es más rápida y utiliza menos
recursos de registros de transacciones y de sistema.
 
La sintaxis es la siguiente:

Por ejemplo, queremos vaciar la tabla "Cliente", usamos:


 
truncate table Cliente
 
Veamos algunas consideraciones al comparar la instrucción DELETE, con la
instrucción TRUNCATE TABLE:

• La instrucción DELETE quita una a una las filas y graba una entrada en el


registro de transacciones por cada fila eliminada. TRUNCATE TABLE quita
los datos al cancelar la asignación de las páginas de datos utilizadas para
almacenar los datos de la tabla y solo graba en el registro de transacciones
las cancelaciones de asignación de páginas.

• No es transaccional. No se puede deshacer.

• La sentencia TRUNCATE no admite cláusula WHERE. Borra todos los


registros de la tabla.

• No todos los gestores de bases de datos admiten la sentencia TRUNCATE.

• TRUNCATE TABLE quita todas las filas de una tabla, pero permanecen la


estructura y sus columnas, las restricciones, etc. Para quitar la definición de





tabla además de los datos, se debe utilizar la instrucción DROP TABLE.

• Otra diferencia es la siguiente: cuando la tabla tiene un


campo "Autonumérico", si borramos todos los registros con "delete" y luego
ingresamos un registro, al cargarse el valor en el campo autoincrementable,
continúa con la secuencia teniendo en cuenta el valor mayor que se había
guardado; si usamos "truncate table" para borrar todos los registros, al
ingresar otra vez un registro, la secuencia del
campo autoincrementable vuelve a iniciarse en 1.

 Por ejemplo, tenemos la tabla "Cliente" con el campo "código" definido


"Autonumérico", y el valor más alto de ese campo es "5", si borramos todos
los registros con "delete" y luego ingresamos un registro sin valor de código,
se guardará el valor "6"; si en cambio, vaciamos la tabla con "truncate table",
al ingresar un nuevo registro sin valor para el código, iniciará la secuencia en
1 nuevamente.

Restricciones:
 
No puede utilizar TRUNCATE TABLE en tablas a las que se hace referencia
mediante una restricción FOREIGN KEY (puede truncar una tabla que tenga una
clave externa que haga referencia a sí misma).
 
BIBLIOGRAFÍA CONSULTADA:

• Fundamentos de Bases de Datos. McGraw Hill. Abraham Silberschatz


& Henry F. Korth, 2002 [4ª ed.]. ISBN 84-481-3654-3


• • Fundamentos de Sistemas de Bases de Datos. PEARSON. Ramez A.


Elmasri & Shamkant B. Navathe: Addison-Wesley, 2007 [5ª ed.]. ISBN
978-84-7829-085-7




—CONTROL DE LECTURA—

Lea, analice y seleccione la respuesta correcta, según corresponda.

1. La instrucción Drop table, permite recuperar los registros si contamos con un


proceso de transacciones.

Falso

2. De las siguientes instrucciones, ¿cuál de ellas borra los registros de la tabla


"Contratos"?

Truncate table Contratos

3. De las siguientes instrucciones, ¿cuál de ellas permite garantizar la integridad


referencial?

Foreing key.




Tema 02: Manejador de Base de Datos

Introducción:

Objetivo:

• Conocer algunas características relevantes de los gestores de bases de datos


para la selección adecuada a los propósitos del negocio.

• Identificar algunos gestores de base de datos disponibles en el mercado


informático.


1. EL MANEJADOR DE BASES DE DATOS

El manejador de base de datos, conocido también como Sistema Gestor de Bases de


Datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto de
programas para acceder a dichos datos. La colección de datos, normalmente
denominada base de datos, contiene información relevante para una empresa. El
objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar
la información de una base de datos de manera que sea tanto práctica como
eficiente.

Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de


información.

La gestión de los datos implica tanto la definición de estructuras para almacenar la


información como la provisión de mecanismos para la manipulación de la información.
Además, los sistemas de bases de datos deben proporcionar la fiabilidad de la
información almacenada, a pesar de las caídas del sistema o los intentos de acceso
sin autorización. Si los datos van a ser compartidos entre diversos usuarios, el
sistema debe evitar posibles resultados anómalos.

Dado que la información es tan importante en la mayoría de las organizaciones, se


ha desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los
datos.

2. APLICACIÓN DE LAS BASES DE DATOS

Como esta lista ilustra, las bases de datos forman una parte esencial de casi todas
las empresas actuales.
 
A lo largo de las últimas cuatro décadas del siglo XX, el uso de las bases de datos
creció en todas las empresas. En los primeros días, muy pocas personas
interactuaron directamente con los sistemas de bases de datos, aunque sin darse
cuenta interactuaron con bases de datos indirectamente (con los informes impresos
como extractos de tarjetas de crédito, o mediante agentes como cajeros de bancos
y agentes de reserva de líneas aéreas).

Después vinieron los cajeros automáticos y permitieron a los usuarios interactuar


con las bases de datos. Las interfaces telefónicas con los computadores (sistemas
de respuesta vocal interactiva) también permitieron a los usuarios manejar
directamente las bases de datos. Un llamador podía marcar un número y pulsar
teclas del teléfono para introducir información o para seleccionar opciones
alternativas, para determinar las horas de llegada o salida, por ejemplo, o para
matricularse en una universidad.

La revolución de Internet a finales de la década de 1990 aumentó


significativamente el acceso directo del usuario a las bases de datos. Las
organizaciones convirtieron muchas de sus interfaces telefónicas a las bases de
datos en interfaces Web, y pusieron disponibles en línea muchos servicios. Por
ejemplo, cuando se accede a una tienda de libros en línea y se busca un libro o una
colección de música se está accediendo a datos almacenados en una base de datos.
Cuando se solicita un pedido en línea, el pedido se almacena en una base de datos.
Cuando se accede a un banco en un sitio Web y se consulta el estado de la cuenta y
los movimientos, la información se recupera del sistema de bases de datos del
banco. Cuando se accede a un sitio Web, la información personal puede ser
recuperada de una base de datos para seleccionar los anuncios que se deberían
mostrar. Más aún, los datos sobre los accesos Web pueden ser almacenados en una
base de datos.

Así, aunque las interfaces de datos ocultan detalles del acceso a las bases de datos,
y la mayoría de la gente ni siquiera es consciente de que están interactuando con
una base de datos, el acceso a las bases de datos forma una parte esencial de la
vida de casi todas las personas actualmente.

La importancia de los sistemas de bases de datos se puede juzgar de otra forma:


actualmente, los vendedores de sistemas de bases de datos como Oracle están
entre las mayores compañías software en el mundo, y los sistemas de bases de
datos forman una parte importante de la línea de productos de compañías más
diversificadas, como Microsoft e IBM.

3. TIPOS DE SISTEMAS GESTORES DE BASE DE DATOS

Cada SGBD puede utilizar un modelo diferente para los datos. Por lo que hay
modelos conceptuales diferentes según que SGBD utilicemos.

Existen modelos lógicos comunes, ya que hay SGBD de diferentes tipos. En la


realidad el modelo ANSI se modifica para que existan dos modelos internos: el
modelo lógico (referido a cualquier SGBD de ese tipo) y el modelo propiamente
interno (aplicable solo a un SGBD en particular). De hecho en la práctica al definir
las bases de datos desde el mundo real hasta llegar a los datos físicos se pasa por
los siguientes esquemas:

Por lo tanto, la diferencia entre los distintos SGBD está en que proporcionan
diferente modelos lógicos.

Diferencias entre el modelo lógico y el conceptual


• El modelo conceptual es independiente del DBMS que se vaya a utilizar, el lógico
depende de un tipo de SGBD en particular.
• El modelo lógico está más cerca del modelo físico, el que utiliza intermanete el
ordenador.
• El modelo conceptual es el más cercano al usuario, el lógico es el encargado de
establecer el paso entre el modelo conceptual y el modelo físico del sistema.

Algunos ejemplos de modelos conceptuales son:


• Modelo Entidad Relación
• Modelo RM/T.
• Modelos semánticos.

Ejemplos de modelos lógicos son:


• Modelo relacional
• Modela en red (Codasyl).
• Modelo jerárquico.
A continuación, se comentarán los modelos lógicos más importantes:

3.1 MODELO JERÁRQUICO


Era utilizado por los primeros SGBD, desde que IBM lo definió para su IMS
(Information Management System, Sistema Administrador de Información) en
1970. Se le llama también modelo en árbol debido a que utiliza una estructura en
árbol para organizar los datos.

La información se organiza con un jerarquiza en la que la relación entre las


entidades de este modelo siempre es del tipo padre / hijo. De esta forma hay una
serie de nodos que contendrán atributos y que se relacionarán con nodos hijos de
forma que puede haber más de un hijo para el mismo padre (pero un hijo solo tiene
un padre).

Los datos de este modelo se almacenan en estructurar lógicas llamadas segmentos.


Los segmentos se relacionan entre si utilizando arcos.

La forma visual de este modelo es de árbol


invertido, en la parte superior están los padres y en
la inferior los hijos.

Este esquema está en absoluto desuso, ya que no es


válido para modelar la mayoría de problemas de base
de datos.

3.2 MODELO EN RED (CODASYL)


Es un modelo que ha tenido una gran aceptación (aunque apenas se utiliza
actualmente). En especial se hizo popular la forma definida por Codasyl a principios
de los 70 que se ha convertido en el modelo en red más utilizado.

El modelo en red organiza la información en registros (también llamados nodos) y


enlaces. En los registros se almacenan los datos, mientras que los enlaces permiten
relacionar estos datos. Las bases de datos en red son parecidas a las jerárquicas
solo que en ellas puede haber más de un padre.

En este modelo se pueden representar perfectamente cualquier tipo de relación


entre los datos (aunque el Codasyl restringía un poco las relaciones posibles), pero
hace muy complicado su manejo.

3.3 MODELO RELACIONAL


El modelo relacional representa la base de datos como una colección de relaciones.
Informalmente, cada una de estas relaciones se parece a una tabla de valores o, de
forma algo más extensa, a un archivo plano de registros.

En este modelo los datos se organizan en tablas cuyos datos se relacionan:

3.4 MODELO DE DATOS ORIENTADO A OBJETOS

Desde la aparición de la programación orientada a objetos (POO u OOP) se empezó


a pensar en base de datos adaptadas a estos lenguajes. La programación orientada a
objetos permite cohesionar datos y procedimientos, haciendo que se diseñen
estructuras que poseen datos (atributos) en las que se dicen los procedimientos
(operaciones) que pueden realizar con los datos. En las bases orientadas a objetos
se utiliza esta misma idea:

A través de este concepto se intenta que estas bases de datos consigan arreglar
las limitaciones de las relaciónales. Por ejemplo, el problema de la herencia (el
hecho de que no se puedan realizar relaciones de herencia entre las tablas), tipos
definidos por el usuario, disparadores (triggers) almacenadles en la base de datos,
soporte multimedia, etc.


Se supone que son las bases de datos de tercera generación (la primera fueron las
bases de datos en red y la segunda las relaciónales), lo que significa que el futuro
parece estar a favor de estas bases de datos. Pero siguen sin reemplazar a las
relacionales, aunque son el tipo de base de datos que más está creciendo en los
últimos años.

Su modelo conceptual se suele diseñar en UML y el lógico actualmente en ODMG


(Object Data Management Group, grupo de administración de objetos de datos,
organismo que intenta crear estándares para este modelo).

3.5 MODELO DE DATOS OBJETO-RELACIONALES


Tratan de ser un híbrido entre el modelo relaciónale y el orientado a objetos. El
problema de las bases de datos orientadas a objetos es que requieren reinvertir
capital y esfuerzos de nuevo para convertir las bases de datos relaciónales en
bases de datos orientadas a objetos. En las bases de datos objeto-relacionadles se
intenta conseguir una compatibilidad relaciónale dando la posibilidad de integrar
mejoras de la orientación a objetos.

Estas bases de datos se basan en el estándar SQL 99. En ese estándar se añade a
las bases relaciónales la posibilidad de almacenar procedimientos de usuario,
triggers, tipos definidos por el usuario, consultas recursicas, bases de datos OLAP,
tipos LOPB, etc.

Las últimas versiones de la mayoría de las clásicas grandes bases de datos


relacionales (Oracle, SQL server, Informix, etc.) son objeto-relacionadles.

4. GESTORES DE BASES DE DATOS A ELEGIR

Al momento de elegir la plataforma de base de datos sobre la cual correr nuestras


aplicaciones de negocio y de misión crítica, generalmente, se tenía muy pocas y
clarísimas opciones a escoger. Cada una tiene fortalezas y flexibilidades que hacen
que las corporaciones elijan con que paquete tiene que escoger.

La elección de una base de datos ha sido por mucho tiempo un punto de discusión
necesaria dentro de los departamentos de sistemas de las empresas, debido a que
dicha decisión acarrea muchas importantes consecuencias para la organización, a
veces de manera permanente. Para aplicaciones de misión crítica esta discusión es

aún mucho más importante, y los factores que inciden dentro de la decisión de
adoptar una u otra plataforma son muy variados y complejos a la vez.

La característica que más se nota en un sistema de base de datos es la velocidad de


procesamiento, pero en la medida en que aumenta la complejidad de un proyecto
informático otras características se hacen necesarias.

Características de las bases de datos libres:

1. Pueda ser usado sin restricciones de ningún tipo


2. Pueda ser estudiado (debe permitir al acceso a su código fuente).
3. Puede ser redistribuido (la copia no constituye delito)
4. Puede ser modificado y es permitido distribuirlo con las modificaciones.

Ejemplos de gestores de base de datos libres

• Firebird
• BDB
• MySQL
• PostgreSQL
• Sqlite
• MaríaDB


Ejemplos de gestores de base de datos propietarios


• dBase
• FileMaker
• Fox Pro
• IBM DB2 Universal Database (DB2 UDB)
• IBM Informix
• MAGIC
• Microsoft SQL Server
• Open Access
• Oracle
• Paradox
• PervasiveSQL
• Progress (DBMS)

• Sybase ASE
• Sybase ASA
• Sybase IQ
• WindowBase

Los gestores de bases de datos son muy útiles y necesarios en el desarrollo de


cualquier software, ya que la gran mayoría de los programas que se crean tienen que
tener base de datos, por lo que es de suma importancia tomar una buena decisión.

BIBLIOGRAFÍA CONSULTADA:
 
• • Fundamentos de Bases de Datos. McGraw Hill. Abraham Silberschatz &
Henry F. Korth, 2002 [4ª ed.]. ISBN 84-481-3654-3

• • Fundamentos de Sistemas de Bases de Datos. PEARSON. Ramez A. Elmasri


& Shamkant B. Navathe: Addison-Wesley, 2007 [5ª ed.]. ISBN
978-84-7829-085-7

—CONTROL DE LECTURA—

Lea, analice y seleccione la respuesta correcta, según corresponda.

1. La gestión de los datos solo implica la definición de estructuras para almacenar


la información.

Falso

2. ¿En cuál de los siguientes modelos los datos se almacenan en estructuras lógicas
llamadas segmentos?

Jerárquico

3. ¿Cuál de los siguientes modelos depende del SGBD?

Lógico





Tema 03: Administración de base de datos.

Introducción:

Objetivo:

• Conocer algunas características relevantes de los gestores de bases de datos


para la selección adecuada a los propósitos del negocio.

• Identificar algunos gestores de bases de datos disponibles en el mercado


informático.


1. LA ADMINISTRACIÓN DE LA ESTRUCTURA DE LA BASE DE DATOS

La administración de la estructura de la base de datos incluye participar en el


diseño inicial de la misma y su puesta en práctica así como controlar y administrar
sus requerimientos, ayudando a evaluar alternativas, incluyendo los DBMS a utilizar
y ayudando en el diseño general de BD. En los casos de grandes aplicaciones de tipo
organizacional, el DBA es un gerente que supervisa el trabajo del personal de diseño
de la BD.
 
Una vez diseñada la BD, es puesta en práctica utilizando productos del DBMS,
procediéndose entonces a la creación de los datos (captura inicial). El DBA participa
en el desarrollo de procedimientos y controles para asegurar la calidad y la alta
integridad de la BD.
 
Los requerimientos de los usuarios van modificándose, estos encuentran nuevas
formas o métodos para lograr sus objetivos; la tecnología de la BD se va
modificando y los fabricantes del DBMS actualizan sus productos. Todas las
modificaciones en las estructuras o procedimientos de BD requieren de una
cuidadosa administración.

2. USUARIOS DE LAS BASES DE DATOS.

Un objetivo principal de un sistema de bases de datos es recuperar información y


almacenar nueva información en la base de datos. Las personas que trabajan con una
base de datos se puede catalogar como usuarios de bases de datos o como
administradores de bases de datos.

2.1 USUARIOS DE BASES DE DATOS E INTERFACES DE USUARIO


Hay cuatro tipos diferentes de usuarios de un sistema de base de datos,
diferenciados por la forma en que ellos esperan interactuar con el sistema. Se han
diseñado diferentes tipos de interfaces de usuario para diferentes tipos de
usuarios:

• Usuarios normales: son usuarios no sofisticados que interactúan con el sistema


mediante la invocación de alguno de los programas de aplicación permanentes
que se ha escrito previamente. Por ejemplo, un cajero bancario que necesita
transferir $50.00 de la cuenta A, a la cuenta B invoca un programa llamado

transferir. Este programa pide al cajero el importe de dinero a transferir, la


cuenta de la que el dinero va a ser transferido y la cuenta a la que el dinero va a
ser transferido.

Como otro ejemplo, considérese un usuario que desee encontrar su saldo de


cuenta en World Wide Web. Tal usuario podría acceder a un formulario en el
que introduce su número de cuenta. Un programa de aplicación en el servidor
Web recupera entonces el saldo de la cuenta, usando el número de cuenta
proporcionado, y pasa la información al usuario.

La interfaz de usuario normal para los usuarios normales es una interfaz de


formularios, donde el usuario puede rellenar los campos apropiados del
formulario.
Los usuarios normales pueden también simplemente leer informes generados de
la base de datos.

• Programadores de aplicaciones: son profesionales informáticos que escriben


programas de aplicación. Los programadores de aplicaciones pueden elegir entre
muchas herramientas para desarrollar interfaces de usuario.

Las herramientas de desarrollo rápido de aplicaciones (DRA o RAD, en inglés)


son herramientas que permiten al programador de aplicaciones construir
formularios e informes sin escribir un programa. Hay también tipos especiales
de lenguajes de programación que combinan estructuras de control imperativo
(por ejemplo, para bucles, bucles while e instrucciones if tren-else) con
instrucciones del lenguaje de manipulación de datos. Estos lenguajes, llamados a
veces lenguajes de cuarta generación, a menudo incluyen características
especiales para facilitar la generación de formularios y la presentación de
datos en pantalla. La mayoría de los sistemas de bases de datos comerciales
incluye un lenguaje de cuarta generación.

Los usuarios sofisticados: interactúan con el sistema sin programas escritos. En


su lugar, ellos forman sus consultas en un lenguaje de consulta de bases de
datos.
Cada una de estas consultas se envía al procesador de consultas, cuya función
es transformar instrucciones LMD a instrucciones que el gestor de
almacenamiento entienda. Los analistas que envían las consultas para explorar
los datos en la base de datos en esta categoría.











Las herramientas de procesamiento analítico en linea (OLAP, Online Analytical
Processing) simplifican la labor de los analistas permitiéndoles resúmenes de datos
de formas diferentes. Por ejemplo, un analista puede ver las ventas totales por
región (por ejemplo, norte, sur, este y oeste), por producto o por una combinación
de la región y del producto (es decir, las ventas totales de cada producto en cada
región). Las herramientas también permiten al analista seleccionar regiones
especificas, examinar los datos con mas detalle (por ejemplo, ventas ciudad dentro
de una región) o examinar los datos con menos detalle
(por ejemplo, agrupando productos por categoría).

Otra clase de herramientas para los analistas son las herramientas de recopilación
de datos que les ayudan a encontrar ciertas clases de patrones de datos.

• Usuarios especializados: son usuarios sofisticados que escriben aplicaciones de


bases de datos especializadas que no son adecuadas en el marco de
procesamiento de datos tradicional. Entre estas aplicaciones están los sistemas
de diseño asistido por computador, sistemas de bases de conocimientos y
sistemas expertos, sistemas que almacenan los datos con tipos de datos
complejos (por ejemplo, datos gráficos y datos de audio) y sistemas de modelado
del entorno.

2.2 ADMINISTRADOR DE LA BASE DE DATOS

Una de las principales razones de usar SHBDs es tener un control centralizado


tanto de los datos como de los programas que acceden a esos datos. La persona
que tiene este control central sobre el sistema se llama administrador de la base
de datos (ADB). Las funciones del ABD incluyen las siguientes:

• Definición del esquema: el ABD crea el esquema original de la base de datos


escribiendo un conjunto de las instrucciones de defunción de datos en el LDD.

• Definición de la infraestructura y del método de acceso.

• Modificación del esquema y de la organización física: los ABD realizan cambios


en el esquema y en la organización física para reflejar las necesidades
cambiantes de la organización o para alterar la organización física para mejorar
el rendimiento.








• Concesión de autorización para el acceso a los datos: la concesión de diferentes
tipos de autorización permite al administrador de la base de datos determinar a
qué partes de la base datos puede acceder cada usuario. La información de
autorización se mantiene en una estructura del sistema especial que el sistema
de base de datos consulta cuando se intenta el acceso a los datos en el sistema.

• Mantenimiento rutinario: algunos ejemplos de actividades rutinarias de


mantenimiento del administrado de la base de datos son:

Copia de seguridad periódica de la base de datos, sobre cinta o sobre servidores


remotos, para prevenir la pérdida de datos en caso de desastres como
inundaciones.

Asegurarse de que haya suficiente espacio libre en disco para las operaciones
normales y aumentar el espacio en disco según sea necesario.

Supervisión de los trabajos que se ejecuten en la base de datos y asegurarse de


que el rendimiento no se degrada por tareas muy costosas iniciadas por algunos
usuarios.







Una de las decisiones más importantes al instalar un sistema de gestión en una
organización es la base de datos en la que almacenar los miles, decenas de miles o
millones de registros es de vital importancia.

Aunque parezca una decisión “técnica”, sus consecuencias son muy importantes por
lo que no debe dejarse de lado como una “característica técnica más”. Estamos
hablando del “contenedor” de toda la información de la empresa y una elección
incorrecta puede poner en peligro el funcionamiento de la empresa por lo que su
elección no debe responder únicamente a criterios técnicos.

En la actualidad, las bases de datos no solo se encargan de almacenar datos, sino


para muchos propósitos, como el almacenamiento de archivos de diferentes tipos y
formatos. Por supuesto que para ellos es importante realizar un buen análisis y la
conveniencia de ser almacenado en la base de datos o fuera de ella. Veamos a
continuación un posible caso:

Base de datos “propietaria”:aunque parezca mentira, hay empresas que ofrecen


sus productos sobre “su propia base de datos”. A muchos, sorprende que haya
empresas que utilizan su propia base de datos para conservar y gestionar
documentos. Es evidente que para estas empresas su producto es estupendo y lo
conocen a la perfección, ya que ellos lo han desarrollado. Pero igualmente podemos
conocer muy bien Oracle o SQL Server (muchos se refieren a este último como
SQL lo cual es incorrecto, pues SQL es el lenguaje estándar en la manipulación de
las bases de datos).

Las bases de datos propietarias, pueden decir que son robustas, pero ¿más que
Oracle?, la única ventaja posible puede ser el precio, pero ¿qué hay con la robustez,
calidad, seguridad, etc? ¿Qué pasa si se tiene un problema con el proveedor? ¿Cómo
se accedería a los documentos e información, guardados en un sistema que nadie,
conoce salvo ellos? Es importante mantener en mente estos elementos, pues la
decisión de seleccionarla puede acarear dificultades en el futuro, sobre todo si ya
no se cuenta con el soporte técnico correspondiente.

Base de datos “estándar”:en esta ocasión, entenderemos como “estándar”, que sea
un producto conocido, con muchos años de vida, del que hay manuales,
documentación, cursos, etc., del que se puede encontrar un técnico en cualquier
lugar del mundo. En esta categoría, que puede parecer restrictiva, hay muchos
productos. Por citar algunos: DB2, Firebird, Informix, Interbase, MySQL, Oracle,
PostgreSQL, Pervasive, SQLite, SQL Server, Sybase y muchos otros más. Todos
estos tienen una característica: se basan en el lenguaje de consulta estructurado
SQL que es un estándar en este tipo de soluciones. Estos pueden ser divididos en 3
grupos a modo de ejemplo:

a. Las de software libre: MySQL es la más representativa o conocida.

b. Las más extendidas: Oracle y SQL Server por su trayectoria comercial.

c. El resto: algunas como DB2 casi tan conocidas como Oracle, pero propiedad
de IBM, dirigida a grandes empresas y, por tanto, mucho menos extendida
que Oracle o SQL server. Otras han tenido su momento de gloria, o tienen su
nicho de mercado, pero su popularidad no tiene comparación respecto a las
dos anteriores.





Debemos, por tanto, considerar que al elegir un gestor de base de datos son muchos
factores los que debemos tomar en cuenta. Lo importante es que cumplan con las
expectativas del negocio y sobre todo, que se mantengan disponibles por mucho
tiempo, pensando en la robustez y escalabilidad. Cualquiera de ellas es más que
suficiente para manejar cientos de miles de documentos sin problema. Un software
de gestión documental “basado” en cualquiera de las tres será bueno o malo por sí
mismo, pero no por la base de datos que utiliza.
 
Es importante que cuando se menciona la palabra “empresa” se refiere a la
organización que instala o piensa instalar un sistema de gestión. Puede ser una
empresa pública o privada, un despacho profesional, una consulta de un médico o una
administración pública, una universidad, incluso una persona solamente.

4. IMPLANTACIÓN DE UN GESTOR DE BASE DE DATOS

Después de haber realizado el análisis de los datos, diseñar archivos, realizar el


diccionario de datos y establecer el mapa de los mismos, lo siguiente es buscar un
programa manejado de bases de datos.

Muchos de estos programas diseñados para crear, administrar y realizar


transacciones con ellas, en la actualidad ofrecen herramientas para crear
interfases como formularios y reportes, así como existen lenguajes de
programación para realizar esta actividad, entre muchos sistemas maneadores de
bases de datos existen: Visual Fox Pro, Oracle, Microsoft SQL Server, MySqL,
SQLite, Delphi, Access, entre muchos otros compartidas en internet como un caso
exitoso tenemos a Oracle, y de algunos lenguajes a nivel servidor como PHP, Visual
Basic Script, C#, entre mucho más.

Considerando lo anterior, debemos por lo tanto, tomar en cuenta:

• La flexibilidad, es decir, que nos ofrezca facilidad al manipular las bases de


datos, por ejemplo, administrador de datos, opciones para crear reportes e
interfases de usuario, exportación e importación de datos, etc.

• Cantidad de manejo de datos, con esto nos referimos a que cada manejado está
diseñado para una determinada cantidad de datos por lo que debemos poner
atención de cuánta información se va menaje y si soporta dicha cantidad

• Soporte para compartir datos, En la actualidad compartir datos es una parte


muy importante en un sistema de información por lo que el manejado debe
ofrecer un buen soporte para esta actividad así como velocidad de transferencia
de datos.

• Robustez y seguridad. Estas dos características son importantísimas, pues el


manejado de bases de datos debe ofrecer estabilidad, confiabilidad, eficiencia,
calidad en el manejo de datos, que sean archivos que no se dañen tan fácilmente
y sobre todo que tenga que ver con la administración de bases de datos.

• Herramientas de mantenimiento. Cada sistema debe ofrecernos las


herramientas necesarias para crear indices, recuperación de datos, depuración,
es decir, todo lo que tenga que ver con la administración de base de datos.

• Costo. Seleccionar con base en las características y revisar el costo beneficio y


cómo queremos invertir en un manejado de bases de datos. En la actualidad
existen maneadores de bases de datos como MySQL o SQLite que son software
le libre distribución, lo que viene a significar mucho en cuanto a costos se
refiere, pero todo dependerá de las decisiones en cuanto a inversiones en el
rubro informático al implementar un sistema.

Por lo que con lo anterior debemos tomar en cuenta estos puntos para la
implementación de un buen manejado de bases de datos, que es lo que se acopla más
a las necesidades de la organización.

Dentro de un ambiente de bases de datos existen usuarios que intervienen en ella,


como el cliente, que es quien recibe solo resultados, los usuarios medios que son
quienes manipulan un poco los datos, pero de una forma no profesional, y el
administrador de bases de datos (ADB o DBA), que es el que se encarga de realizar
todas las actividades que conciernen a la supervisión, explotación y el óptimo
funcionamiento de las bases de datos, intervienen en situaciones de emergencia o
problemáticas e inclusive, manipular la información en caso de necesitar un proceso
externo como reportes especiales o procesos de control así como establecer las
condiciones para evitar incidencias.



En algunas de las actividades más conocidas podemos mencionar las siguientes:

ACTIVIDADES DE LA ADMINISTRACIÓN

Mantenimiento, administración, control de esquemas y comunicación de cambios


a los usuarios

es decir, debe establecer los lineamientos para administrar la información, por


ejemplo, cómo debe fluir y quién tendrá acceso a cada uno de los procesos que
intervienen la base de datos. En cuanto a mantenimiento, es decir, mantener en
buenas condiciones la información, depurada con sus respectivos indices, evitar
redundancias, etc., en cuanto a control de esquemas, es decir, que todas las bases
de datos se encuentren bien estructuradas, coherentes y que sigan los flujos de
información eficientemente.

Mantener los datos disponibles

Como por ejemplo, con respaldos, reportes, reestructurado las bases de datos,
cualquier actividad en la que se tenga que afectar las base de datos para tener una
mejor consistencia en la información y seguridad en caso de emergencias.

Resolución de emergencias

Es decir, debe estar preparado para resolver una situación inconveniente con los
archivos y se debe contar con las herramientas informáticas necesarias para la
solución de problemas.

Vigilar

Que todos los datos sean consistentes y la base de datos se mantenga integra.

Diseño físico

Reestructuraciones, accesos y restricciones a la base de datos, esto es que debe


mantener un diseño y poder manipularlo para futuras modificaciones a las
estructuras de datos, establecer criterios de acceso para los usuarios y su alcance
dentro de ellas.



Controlar el rendimiento

Decisiones relacionadas con la base de datos, parámetros y establecer medidas


para mejorar las estructuras y el manejado de base de datos, además de ellos tener
iniciativa y toma de decisión para realizar las actividades con las que se afecten las
bases de datos.

Como se ha mencionado, como este usuario (DBA) es el responsable de la base de


datos, también debe asesorar de la normativa de manejo de las bases de datos a los
programadores y usuarios que tengan injerencia en la base de datos.

La tarea de este usuario como se muestra no es fácil, requiere de responsabilidad y


buen conocimiento de estas, además de la iniciativa para poder hacer los cambios,
realizar propuestas y hacer toma de decisiones para las mejoras dentro de las
estructuras de las bases de datos.

Como podemos ver el proceso de un análisis y diseño de bases de datos es un


trabajo que requiere de tiempo y seguir los pasos para tener el éxito y esa sea una
estructura robusta para el propósito para el cual se creó.
 

BIBLIOGRAFÍA CONSULTADA:
 
1. Fundamentos de Bases de Datos. McGraw Hill. Abraham Silberschatz &
Henry F. Korth, 2002 [4ª ed.]. ISBN 84-481-3654-3

2. Fundamentos de Sistemas de Bases de Datos. PEARSON. Ramez A. Elmasri &


Shamkant B. Navathe: Addison-Wesley, 2007 [5ª ed.]. ISBN
978-84-7829-085-7

—CONTROL DE LECTURA—

Lea, analice y seleccione la respuesta correcta, según corresponda.

1.  Es correcto seleccionar una base de datos sin haber revisado sus
características.

Falso

2. Elaborar el diseño conceptual es parte de las actividades de la administración de


la base de datos.

Jerárquico

3. Los usuarios que interactúan con el sistema sin programas escritos son:

Usuarios sofisticados



Tema 04: Estructura de Base de Datos

Introducción:

Objetivo:

• Identificar los diferentes tipos de estructuras que son utilizadas en el


proceso de definición de la base de datos de un sistema de información.

• Conocer los conceptos del entorno de las estructuras de la base de datos.



1. PROPÓSITO DE LAS BASES DE DATOS

La función básica de una base de datos es permitir el almacenamiento y la


recuperación de la información necesaria, para que las personas de la organización
puedan tomar decisiones. Es así que las bases de datos se tornan esenciales para la
supervivencia de cualquier organización; pues los datos estructurados constituyen
un recurso básico para todas las organizaciones.

Dependiendo de la capacidad de almacenamiento y procesamiento del hardware, la


organización puede contar con una única Base de Datos, o con múltiples bases de
datos.

Es común que en las pequeñas y medianas empresas se cuente con


microcomputadoras, y por ello tengan que distribuir su información en un conjunto
de bases de datos; asignándole a cada una de ellas, información sobre cada área
específica de la empresa. Un ejemplo sería contar con una base de datos para el
almacenamiento de la información correspondiente al área financiera, otra para el
área de personal, una más para el área de ventas o el área de producción.

Mientras tanto, las grandes organizaciones poseen computadoras de gran porte, y


es así que pueden almacenar toda la información necesaria, integrada, consistente y
consolidada, en una única base de datos.

Independientemente de la base de datos que será implementada, esta necesita de


un Sistema Gestor de Base de Datos (SGBD o DBMS). Los sistemas gestores de
base de datos son programas de software para la administración de las bases de
datos; y en particular, para almacenar, manipular y recuperar datos en una
computadora. El SGBD también se encargará de la comunicación entre el usuario y
la base de datos, proporcionándole al usuario, los medios necesarios para poder
obtener información, introducir nuevos datos y actualizar los ya existentes.

2. TIPOS DE ARCHIVOS

Los archivos que pueden definir en la estructura de una base de datos pueden
clasificarse en cuatro tipos básicos, que son: los archivos maestros, los archivos de
transacciones, los archivos de control y los archivos de planeamiento. Esta
clasificación dependerá de la relación lógica que deben tener los datos, para dar
apoyo a la actividad de la organización.

ARCHIVO MAESTRO

Es un conjunto de registros que se refieren a algún aspecto importante de las


actividades de una organización, como por ejemplo, el archivo de VENDEDORES. Un
archivo maestro también puede reflejar la historia de los eventos que afectan a una
entidad determinada, como es en el caso de un archivo HISTÓRICO DE VENTAS.
Otros ejemplos son los archivos maestros de:

• PLAN DE CUENTAS.
• BANCOS.
• NÓMINA DEL PERSONAL.
• CLIENTES.
• VENDEDORES.
• PRODUCTOS.
• PROVEEDORES.
• COMPETIDORES, etc.

ARCHIVO DE TRANSACCIONES

Es un archivo temporal que persigue básicamente dos propósitos; uno es acumular


datos de eventos en el momento que ocurran, y el segundo propósito es actualizar
los archivos maestros para reflejar los resultados de las transacciones actuales. En
otras palabras, guardan información sobre los eventos que afectan a la organización
y sobre los cuales se calculan datos; como es en el caso de los archivos de VENTAS,
ÓRDENES DE PRODUCCIÓN o PAGO DE SALARIOS. Otros ejemplos de archivos
de transacciones son los archivos de:

• REGISTROS CONTABLES.
• COSTOS.
• FACTURAS.
• PAGOS A RECIBIR.
• PROCESOS DE EXPORTACIÓN.
• CONSULTA DE CLIENTES.
• PEDIDOS DE CLIENTES.
• PEDIDOS A PROVEEDORES, etc.


ARCHIVOS DE CONTROL
 
Los archivos de control contienen datos de los archivos maestros y de
transacciones, para permitir el análisis del desempeño de la organización. Estos
archivos generan medidas de control de los negocios, como pueden ser:
 
• VOLUMEN DE VENTA POR PRODUCTO.
• VOLUMEN DE VENTA POR VENDEDOR.
• VOLUMEN DE VENTA POR CLIENTE.
• COMPRAS POR PROVEEDOR.
• COSTO DE REPOSICIÓN.


ARCHIVO DE PLANEAMIENTO

Los archivos de planeamiento contienen datos referentes a los niveles esperados de


los datos existentes en los archivos maestros y de transacciones, como por
ejemplo:
 
• PROGRAMA DE VENTAS.
• PROGRAMA DE COMPRAS.
• PROGRAMA DE PRODUCCIÓN.
• PRESUPUESTO FINANCIERO.

Por lo tanto, los datos existentes en un archivo de planeamiento provienen de los


archivos maestros, de transacciones y de control.

3. ESTRUCTURA DE UN SISTEMA DE BASE DE DATOS

Un sistema de bases de datos se divide en módulos que se encargan de cada una de


las responsabilidades del sistema completo. Los componentes funcionales de un
sistema de bases de datos se pueden dividir a grandes rasgos en los componentes
gestores de almacenamiento y procesador de consultas.
 

El gestor de consultas es importante porque las bases de datos requieren


normalmente una gran cantidad de espacio de almacenamiento. Las bases de datos
corporativas tienen un tamaño de entre cientos de gigabytes y, para las mayores
bases de datos, terabytes de datos. 

Un gigabyte son 1.000 megabytes (1.000 millones de bytes), y un terabyte es 1


millón de megabytes (1 billón de bytes). Debido a que la memoria principal de los
computadores no puede almacenar esta gran cantidad de información, esta se
almacena en discos. Los datos se trasladan entre el disco de almacenamiento y la
memoria principal cuando es necesario. Como la transferencia de datos desde el
disco es lenta comparada con la velocidad de la unidad central de procesamiento, es
fundamental que el sistema de base de datos estructure los datos para minimizar la
necesidad de movimiento de datos entre el disco y la memoria principal.

El procesador de consultas es importante porque ayuda al sistema de bases de


datos a simplificar y facilitar el acceso a los datos. Las vistas de alto nivel ayudan a

conseguir este objetivo. Con ellas, los usuarios del sistema no deberían ser
molestados innecesariamente con los detalles físicos de implementación del
sistema. Sin embargo, el rápido procesamiento de las actualizaciones y de las
consultas es importante. Es trabajo del sistema de bases de datos traducir las
actualizaciones y las consultas escritas en un lenguaje no procedimental, en el nivel
lógico, en una secuencia de operaciones en el nivel físico.

4. GESTOR DE ALMACENAMIENTO

Es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel
en la base de datos y los programas de aplicación y consultas emitidas al sistema. El
gestor de almacenamiento es responsable de la interacción con el gestor de
archivos. Los datos en bruto se almacenan en disco usando un sistema de archivos,
que está disponible habitualmente en un sistema operativo convencional. El gestor
de almacenamiento traduce las diferentes instrucciones LMD a órdenes de un
sistema de archivos de bajo nivel. Así, el gestor de almacenamiento es responsable
del almacenamiento, recuperación y actualización de los datos en la base de datos.

Los componentes del gestor de almacenamiento incluyen:

Gestor de autorización e integridad: que comprueba que se satisfagan las


restricciones de integridad y la autorización de los usuarios para acceder a los
datos.

Gestor de transacciones: que asegura que la base de datos quede en un estado


consistente (correcto correcto) a pesar de los fallos del sistema, y que las
ejecuciones de transacciones concurrentes ocurran sin conflictos.

Gestor de archivos: que gestiona la reserva de espacio de almacenamiento de disco


y las estructuras de datos usadas para representar la información almacenada en
disco.

Gestor de memoria intermedia: que es responsable de traer los datos del disco de
almacenamiento a memoria principal a memoria principal y decidir que datos tratar
en memoria caché. El gestor de memoria intermedia es una parte critica del sistema
de base de datos, ya que permite que la base de datos maneje tamaños de datos que
son muchos mayores que el tamaño de la memoria principal.




El gestor de almacenamiento implementa varias estructuras de datos como parte de


la implementación física del sistema:
 
• Archivos de datos: que almacenan la base de datos en sí.

• Diccionario de datos: que almacena metadatos acerca de la estructura de la


base de datos, en particular, el esquema de la base de datos.

• Índices: que proporcionan acceso rápido a elementos de datos que tienen


valores particulares.

 Veamos a continuación la estructura del sistema en forma gráfica:




5. ESTRUCTURA MULTICAPA
 
El proceso que realiza un SGBD está en realidad formado por varias capas que
actúan como interfaces entre el usuario y los datos. Fue el propio organismo ANSI
(en su modelo X3/SPARC que luego se comenta) la que introdujo una mejora de su
modelo de bases de datos en 1988 a través de un grupo de trabajo llamado UFTG
(User Facilities Task Group, grupo de trabajo para las facilidades de usuario). Este
modelo toma como objeto principal al usuario habitual de la base de datos y modela
el funcionamiento de la base de datos en una
sucesión de capas cuya finalidad es ocultar y
proteger la parte interna de las bases de datos.
 
Desde esta óptica para llegar a los datos hay que
pasar una serie de capas que desde la parte más
externa poco a poco van entrando más en la
realidad física de la base de datos. Esa estructura
se muestra a continuación:

• Facilidades de usuario: son las


herramientas que proporciona el SGBD a los
usuarios para permitir un acceso más sencillo a los datos. Actúan de interfaz
entre el usuario y la base de datos, y son el único elemento que maneja el
usuario.
• Capa de acceso a datos: la capa de acceso a datos es la que permite
comunicar a las aplicaciones de usuario con el diccionario de datos a través
de las herramientas de gestión de datos que incorpore el SGBD.
• Diccionario de datos: se trata del elemento que posee todos los metadatos.
Gracias a esta capa las solicitudes de los clientes se traducen en
instrucciones que hacen referencia al esquema interno de la base de datos.
• Núcleo: el núcleo de la base de datos es la encargada de traducir todas las
instrucciones requeridas y prepararlas para su correcta interpretación por
parte del sistema. Realiza la traducción física de las peticiones.
• Sistema operativo: es una capa externa al software SGBD pero es la única
capa que realmente accede a los datos en sí.

6. ESTRUCTURA DE LAS BASES DE DATOS

La estructura de una base de datos hace referencia a los tipos de datos, los
vínculos o relaciones y las restricciones que deben cumplir esos datos (integridad
de datos y redundancia de datos).

La estructura de una base de datos es


diseñada o descrita empleando algún tipo de
modelo de datos.

La base de datos se organiza en dos


marcadas secciones: el esquema y los datos
(o instancia).

El esquema es la definición de la estructura


de la base de datos y, principalmente,
almacena los siguientes datos:

Las bases de datos relacionales pasan por un proceso al que se le conoce como
normalización, el resultado de dicho proceso es un esquema que permite que la base
de datos sea usada de manera óptima.

Los datos o instancia es el contenido de la base de datos en un momento dado. Es


en sí, el contenido de todos los registros.

Una base de datos está compuesta por un conjunto de tablas o archivos. Para una
mayor comprensión podemos ejemplificar la siguiente base de datos de compras, la
cual podría contener tres entidades:
 

• Datos sobre productos (entidad producto), almacenados en el archivo de


PRODUCTOS.

• Datos sobre proveedores (entidad proveedores), almacenados en el archivo


PROVEEDORES.

• Datos sobre el origen de los productos (entidad origen del producto), es


decir, los productos son provistos por cada proveedor y viceversa,
almacenados en el archivo de ORIGEN DEL PRODUCTO.

La información almacenada en cada uno de estos archivos se conoce con el nombre


de entidad. Por lo tanto, una entidad es cualquier persona, cosa o evento, real o
imaginario, de interés para la organización y acerca del cual se capturan, almacenan
o procesan datos.
Además, cada uno de estos archivos está formado por un conjunto de registros que
describe, a través de los atributos o datos (columna), cada entidad en él
almacenado. Un atributo es, pues, cualquier detalle que sirve para identificar,
clasificar, cuantificar o expresar el estado de una entidad.
Todos los registros de un archivo, identificados por las filas de cada tabla, poseen
el mismo formato, es decir, tienen el mismo conjunto de datos o atributos,
identificados por las columnas, que describen a las entidades.
En otras palabras, los registros están formados por un conjunto de datos
almacenados en los campos de cada atributo; y cada registro debe contener el
conjunto de atributos necesarios, para describir completamente cada entidad sobre
la cual una organización necesita almacenar y obtener información.


7. Estructura de las bases de Datos Relacionales

7.1 RELACIÓN O TABLA

Según el modelo relacional (desde que Codd lo enunció) el elemento


fundamental es lo que se conoce como relación aunque más
habitualmente se le llama tabla (o también array o matriz).
Codd definio las relaciones utilizando un lenguaje matemático, pero
se pueden asociar a la idea de tabla (de filas y columnas), ya que es
más fácil de entender.
No hay que confundir la idea de relación según el modelo de Codd,
con lo que significa una relación en el modelo Entidad/Relación de Chen. No tienen
nada que ver.

Las relaciones constan de:

• Atributos: referido a cada propiedad de los datos que se almacenan en la


relación (nombre, dni,….).
• Tuplas: referido a cada elemento de la relación. Por ejemplo, si una relación
almacena personas, una tupla representaría a una persona en concreto.

Puesto que una relación se representa como una tabla; podemos entender que las
columnas de la tabla son los atributos; y las filas, las tuplas.

7.2 TUPLA

Cada una de las filas de la relación. Se corresponde con la idea


clásica de registro.
Representa, por tanto, cada elemento individual de esa relación.
Tiene que cumplir que:
• Cada tupla se debe corresponder con un elemento del mundo real.
•No puede haber dos tuplas iguales (con todos los valores iguales).




7.3 DOMINIO
Un dominio contiene todos los posibles valores que puede tomar un determinado
atributo. Dos atributos distintos pueden tener el mismo dominio.

Un dominio en realidad es un conjunto finito de valores del mismo tipo. A los


dominios se les asigna un nombre y así podemos referimos a ese nombre en más de
un atributo.

La forma de indicar el contenido de un dominio se puede hacer utilizando dos


posibles técnicas:

• Intensión: se define el dominio indicando la definición exacta de sus posibles


valores. Por intensión se puede definir el dominio de edades de los trabajadores
como: números enteros entre el 16 y el 65 (un trabajador solo podría tener una
edad entre 16 y 65 años).
• Extensión: se indican algunos valores y se sobreentiende el resto gracias a que
se autodefinen con los anteriores. Por ejemplo, el dominio localidad se podría
definir por extensión así: San Francisco, Buenos Aires, Tapachula…

Ademas pueden ser:


• Generales: los valores están comprendidos entre un máximo y un mínimo.
• Restringidos: solo pueden tomar un conjunto de valores.

7.4 GRADO
Podemos definir dos tipos de “grados”, que es el número de ocurrencias
relacionadas de elementos. Esta puede ser desde el punto de vista del modelo de
datos y otra de la estructura de datos.

7.4.1 Grado de interpelación (según el modelo de datos)


Se define grado de una relación como el número de conjuntos de entidades que
participan en el conjunto de relaciones o lo que es lo mismo, el número de entidades
que participan en una relación.

Las relaciones en las que participan dos entidades son binarias o de grado dos.







Si participan tres serán ternarias o de grado 3. Los conjuntos de relaciones pueden


tener cualquier grado, lo ideal es tener relaciones binarias.

7.4.2 Grado según los atributos (según la estructura de datos)


Indica el tamaño de una relación con base al número de columnas (atributos) de la
misma TABLA. Lógicamente cuanto mayor es el grado de una relación, mayor es su
complejidad al manejarla.

7.5 CARDINALIDAD
Número de duplas de una relación o número de filas de una tabla.

Otra de las características importantes que hay que tener en cuenta es la


cardinalidad de cada extremo en relación. La cardinalidad expresa cuántas del
conjunto de entidades de un extremo de la relación están relacionadas con cuántas
entidades del conjunto del otro extremo.

Puede ser “uno a uno”, “uno a varios” o “varios a varios”. Por ejemplo, un articulo
puede ser escrito por un solo autor o por varios pero nunca por ninguno; un autor
puede pertenecer a exactamente una institución (no para cero o varias); un artículo
puede tener cero, uno o varios experimentos. Finalmente, un autor puede escribir
muchos artículos o ninguno.

7.6 LLAVE PRIMARIA

Cada instancia de una entidad debe ser unívocamente identificable de manera tal
que cada registro de la entidad debe estar separado y ser unívocamente
identificable del resto de los registros de esa misma entidad, y quien permite esta
identificación es la llave primaria. La llave primaria, que generalmente, se





identificaba por medio de la letra @, puede ser un atributo o una combinación de


atributos.

En consecuencia, en cada archivo solo podrá existir un único registro que posea un
valor determinado para su llave primaria. En otras palabras no puede existir en un
archivo un registro que cuente con el mismo valor de otro registro en el campo de la
llave primaria; no puede tener valores repetidos para distintos registros.

La llave primaria debe permitirle a un Sistema de Gestión de Base de Datos


(SGBD), correctamente proyectado, generar un error si un usuario intenta incluir un
nuevo registro cuya llave primaria coincida con la de otro registro ya existente en
el archivo.

7.7 ÍNDICE
Un índice de acceso es un archivo utilizado por el SGDB para acceder directamente
a cada registro del archivo de datos. La operación de indexación, creada por el
SGDB, ordena a los registros de un archivo de datos de acuerdo con los campos
utilizados como llave primaria e, incrementa sensiblemente la velocidad de ejecución
de algunas operaciones sobre el archivo de datos.
Normalmente para cada archivo de datos debe existir un índice cuya llave de
indexación sea idéntica a su llave primaria. Este índice es llamado indice primario.
También es posible crear indices para un archivo de datos utilizando atributos
(campos) o conjunto de atributos, diferentes de los de la llave primaria. Este tipo
de índice, llamado índice secundario, es utilizado para reducir el tiempo de
localización de una determinada información dentro de un archivo o para clasificar
los registros del archivo de acuerdo con el orden necesario para la obtención de la
información deseada.



BIBLIOGRAFÍA CONSULTADA:
 
1. Fundamentos de Bases de Datos. McGraw Hill. Abraham Silberschatz &
Henry F. Korth, 2002 [4ª ed.]. ISBN 84-481-3654-3

2. Fundamentos de Sistemas de Bases de Datos. PEARSON. Ramez A. Elmasri &


Shamkant B. Navathe: Addison-Wesley, 2007 [5ª ed.]. ISBN
978-84-7829-085-7


—CONTROL DE LECTURA—

Lea, analice y seleccione la respuesta correcta, según corresponda.

1.  ¿La llave primaria es un archivo auxiliar utilizado internamente por el SGDB


para acceder directamente a cada registro del archivo de datos?.

Falso

2. Es un archivo temporal que persigue acumular datos de eventos en el momento


que ocurran:

Archivo de Transacciones

3. El que gestiona la reserva de espacio de almacenamiento de disco y las


estructuras de datos es:

Gestor de Archivos

4. En cuál de las siguientes capas permite comunicar a las aplicaciones de usuario


con el diccionario de datos:

Acceso a datos






—EVALUACIÓN—

1. La restricción que comprueba que se cumpla una condición determinada al


rellenar esa o esas columnas es: Check.

2. De las siguientes restricciones, ¿cuál de ellas valida la integridad referencial?

Foreign Key.

3. El resultado final al utilizar la instrucción DELETE o la instrucción TRUNCATE


es la misma.

Verdadero

4. ¿Cuál de las instrucciones es más rápida o eficiente al eliminar registros de una


tupla?

Truncate

5. Es lo mismo utilizar la instrucción DELETE TABLE y TRUNCATE TABLE.

Falso

6. ¿Cuál de los siguientes modelos está más cercano al usuario?

Modelo Conceptual

7. ¿Cuál de los siguientes gestores de bases de datos es no propietario?

MariaDB

8. Los usuarios que interactúan con el sistema mediante la invocación de alguno de


los programas de aplicación permanentes que se ha escrito previamente son los
llamados:

Usuarios normales.




















9. Se han definido 4 tipos de archivos de acuerdo a la actividad lógica de una
empresa. La que se refiere a conjunto de registros que se relaciona a algún
aspecto importante de las actividades de una organización es:

Archivo Maestro

10. En la estructura multicapa, ¿cuál de las siguientes es la que contiene los


metadatos?

Diccionario de Datos.

11. En base de datos, el término tupla es equivalente a registro.

Verdadero

12. El término INDICE tiene el mismo concepto que PRIMARY KEY.

Falso










También podría gustarte