You are on page 1of 15

ANTOLOGÍA DE BASE DE DATOS I

UNIDAD I.- INTRODUCCIÓN A LAS BASES DE DATOS

1.1 BASES DE DATOS

1.1.1 Importancia de las Bases de Datos y de los Sistemas de Información

Una base de datos, bien diseñada y alimentada, no es más que una herramienta de consulta
pura y dura. Este es el verdadero valor añadido que le da a una empresa, ya que le permite
combinar cualquier información con todo tipo de consultas que se le formulen. Disponer de
una buena base de datos significa controlar la amplia gama de información con la que trabaja
cualquier tipo de negocio. La franquicia no es una excepción.

Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados


independientemente de su utilización y su implementación en máquina accesibles en tiempo
real y compatibles con usuarios concurrentes con necesidad de información diferente y no
predicable en tiempo.

La base de datos es una colección almacenada de datos interrelacionados que representa la


información operacional de una organización. Sin redundancias perjudiciales o innecesarias.

Su finalidad es la de servir a una aplicación ó más de la mejor manera posible; los datos se
almacenan de modo que resulten independientes de los programas que usan; se emplean
métodos bien determinados para incluir nuevos datos y para modificar o extraer los datos
almacenados.

ORGANIZACIÓN: Puede ser una empresa de cualquier tipo bancos, hospitales, universidades,
etc.
DATOS: Representación de la información.
COLECCIÓN ALMACENADA: Significa un conjunto de datos que se guardan en algún dispositivo
de almacenamiento manual o automatizado. Los datos están interrelacionados porque
representan información de varias áreas de aplicación.

• Definición de Base de Datos.- Un conjunto de información almacenada en memoria


auxiliar que permite acceso directo y un conjunto de programas que manipulan esos
datos.

Sus Orígenes y Antecedentes surgen desde mediados de los años sesenta. En 1970 Codd
propuso el modelo relacional, este modelo es el que ha marcado la línea de investigación por
muchos años, ahora se encuentran los modelos orientados a objetos.

VENTAJAS DE LAS BASES DE DATOS.-

1. Independencia de datos y tratamiento.


• Cambio en datos no implica cambio en programas y viceversa (Menor costo
de mantenimiento).
2. Coherencia de resultados.
• Reduce redundancia:
• Acciones lógicamente únicas.
• Se evita inconsistencia.
3. Mejora en la disponibilidad de datos
• No hay dueño de datos (No igual a ser públicos).
• Ni aplicaciones ni usuarios.
• Guardamos descripción (Idea de catálogos).
4. Cumplimiento de ciertas normas.
•Restricciones de seguridad.
•Accesos (Usuarios a datos).
•Operaciones (Operaciones sobre datos).
5. Otras ventajas:
• Más eficiente gestión de almacenamiento.

1.1.2 Objetivos de las bases de datos

1.- Los datos almacenados por una base de datos deben de tener usos múltiples. Diferentes
usuarios que ven los mismos datos pueden emplearlos de diferentes maneras.

2.- Claridad: Los usuarios deben conocer y entender los datos que tienen a su disposición.
3.- Proteger la inversión intelectual: Los programas y estructuras de datos existentes que
representan muchos hombres de trabajo, no deben tener que hacerse completamente cuando
hay cambios en la base de datos.

4.- Facilidad de uso: Los usuarios deben tener acceso a los datos de una manera simple.
5.- Independencia física de los datos: El hardware de almacenamiento y las técnicas físicas de
almacenamiento podrán ser modificadas sin obligar a la modificación de los programas de
aplicación, ni a la estructura lógica general.

6.- Independencia lógica de los datos: Podrán agregarse nuevos ítems de datos o expandirse
la estructura lógica general sin que sea necesario reescribir los programas de aplicación
existentes.

7.- Redundancia controlada: Los ítems de datos serán almacenados una sola vez, excepto
cuando existan razones técnicas económicas que aconsejen al almacenamiento redundante.

8.- Facilidad del cambio: La base de datos puede crecer y variar sin interferir con las maneras
establecidas de usar los datos.

9.- Protección contra pérdida o daño: Los datos estarán protegidos contra fallas y catástrofes y
contra delincuentes, vándalos incompetentes y personas que intenten falsearlos.

Según los autores ABRAMHAM, KORTH y SUDARSHAN se deben de evitar algunas situaciones
con las bases de datos:

• Evitar la dificultad en el acceso a los datos.- El entorno de procesamiento de archivos


convencional no permite que los datos necesarios sean obtenidos de una forma práctica y
eficiente. Se deben desarrollar sistemas de recuperación de datos más interesantes para un
uso general.

• Evitar el aislamiento de datos.- Debido a que los datos están dispersos en varios archivos, y
los archivos pueden estar en diferentes formatos, es difícil escribir nuevos programas de
aplicación para recuperar los datos apropiados.

• Evitar el problema de atomicidad.- Un sistema de una computadora, como cualquier otro


dispositivo mecánico o eléctrico, está sujeto a fallo. En muchas aplicaciones es crucial
asegurar que una vez que un fallo ha ocurrido y se ha detectado, los datos se restauran al
estado de consistencia que existía antes del fallo, es decir, las modificaciones deben de ocurrir
por completo o no ocurrir en absoluto.

• Evitar anomalías en el acceso concurrente.- Conforme se ha ido mejorando el conjunto de


ejecución de los sistemas y ha sido posible una respuesta en tiempo más rápida, muchos
sistemas han ido permitiendo a múltiples usuarios actualizar los datos simultáneamente. En
tales sistemas un entorno de interacción de actualizaciones concurrentes puede dar lugar a
datos inconsistentes.

1.1.3 Redundancia e Inconsistencia de los Datos

Puesto que los archivos que mantienen almacenada la información son creados por diferentes
tipos de programas de aplicación existe la posibilidad de que si no se controla detalladamente
el almacenamiento, se pueda originar un duplicado de información. Esto aumenta los costos
de almacenamiento y acceso a los datos, además de que puede originar la inconsistencia de
los datos - es decir diversas copias de un mismo dato no concuerdan entre sí -, por ejemplo:
que se actualiza la dirección de un cliente en un archivo y que en otros archivos permanezca
la anterior.

Por otro lado hay diversas razones para considerar la redundancia de datos como una
característica deseable:
1.- Las aplicaciones locales pueden incrementarse si los datos están duplicados los sitios
donde las aplicaciones necesitan estos.
2.- La disponibilidad del sistema puede ser incrementada, porque si un sitio falla no debe
pararse la ejecución de las aplicaciones en otros sitios si los datos están duplicados.

1.1.4 Integridad y Seguridad de los Datos

Problemas de integridad: Los valores de datos almacenados en la base de datos deben


satisfacer cierto tipo de restricciones de consistencia. Estas restricciones se hacen cumplir en
el sistema añadiendo códigos apropiados en los diversos programas de aplicación. Sin
embargo, cuando se añaden esas restricciones, es difícil cambiar los programas para hacer
que se cumplan. El problema es complicado cuando las restricciones implican diferentes
elementos de datos de diferentes archivos.

Problemas de seguridad: La información de toda empresa es importante, aunque unos datos lo


son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no
todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema
de base de datos sea confiable debe mantener un grado de seguridad que garantice la
autentificación y protección de los datos. En un banco por ejemplo, el personal de nóminas
sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos
empleados del banco y no a otro tipo de información.

1.2 SISTEMAS DE MANEJO DE BASES DE DATOS (SMBD)

Una base de datos computarizada puede ser creada y mantenida por un grupo de programas
de aplicación escritos o realizados específicamente para esta tarea o por un sistema
manejador de base de datos (SMBD System Manager Data Base).

Un SMBD es una colección de programas que permiten al usuario crear y mantener una base
de datos. El SMBD es en esencia un sistema de software de propósito general que facilita los
procesos de definición, construcción y manipulación de las bases de datos para varias
aplicaciones.

La definición de una base de datos involucra la especificación de los tipos de datos al ser
almacenados en la base de datos, con una detallada descripción de cada tipo de dato. La
construcción de la base de datos es el proceso de almacenamiento de los mismos datos en
algún medio de almacenamiento que es controlado por el SMBD. La manipulación de una base
de datos incluye algunas funciones como consultas a la base de datos, actualización de la
base de datos y generación de reportes de los datos.

¿Cuál es la función del SMBD?


Además de la definición, uso y manejo de un banco de datos; proporciona un alto grado de
independencia de los datos, capacidad para compartirlo y eliminar redundancias, facilidad
para interrelacionar archivos, integridad, flexibilidad de acceso, seguridad, rendimiento,
eficiencia, control y administración de los datos.

5 VENTAJAS DE USAR BASES DE DATOS

♣ Existe una redundancia controlada o mínima


♣ Existe una independencia de datos
♣ Facilidad para el cambio
♣ La seguridad de los datos y posibilidad de reconstruirlos en caso de falla
♣ Afinación: La base de datos puede ser afinable para mejorar su desempeño sin exigir la
reescritura de los programas de aplicación

1.2.1 Organización

La independencia de datos es la inmunidad de las aplicaciones de usuario a los cambios en la


definición y/u organización de los datos y viceversa. La independencia de datos se puede dar
USUARIOS / PROGRAMADORES
en dos aspectos: lógica y física.

1. Independencia lógica de datos. Se refiere a la inmunidad de las aplicaciones de


SISTEMAa DE
usuario losBD
cambios en la PROGRAMAS
estructura DE lógica de la base de datos. Esto permite que un
cambio en la definición APLICACIÓN / CONSULTAS
de un esquema no debe afectar a las aplicaciones de usuario.
Por ejemplo, el agregar un nuevo atributo a una relación, la creación de una nueva
relación, el reordenamiento lógico de algunos atributos.
2. Independencia SOFTWARE
física de datos. Se refiere al ocultamiento de los detalles sobre las
SMBD
estructuras de almacenamiento a las aplicaciones de usuario. Esto es, la descripción
física de datos puedeSOFTWARE PARA
cambiar sin PROCESOS
afectar DEaplicaciones de usuario. Por ejemplo, los
a las
CONSULTAS / PROGRAMAS
datos pueden ser movidos de un disco a otro, o la organización de los datos puede
cambiar.
SOFTWARE PARA ACCESAR
A continuación se presenta un esquema que muestra un ambiente simplificado de un sistema
DATOS ALMACENADOS
de bases de datos.

DEFINICIÓN
DE LA BD
ALMACE- BD ALMACE-
NADA NADA
1.2.2 Lenguajes de Bases de Datos

Los módulos principales en un paquete de base de datos son:

♣ Editor / Analizador (DDL Data Description Language)


♣ Conjunto de instrucciones (DML Data Manipulation Language)
♣ Consultas interactivas sin necesidad de programas (Query)
♣ Recuperación de información en caso de catástrofe

DDL (LENGUAJE PARA DESCRIPCIÓN DE DATOS)

Lenguaje de un sistema generalizado para manejo de banco de datos (GDBMS), usado para
definir la estructura lógica de los datos; se tienen tres lenguajes DDL; el DDL de esquemas,
para uso del administrador del banco de datos; el DDL de subesquemas también para uso del
administrador de datos y el DDL de subesquemas para el usuario.

DML (LENGUAJE PARA MANIPULACIÓN DE DATOS)

Conjunto de comandos de un sistema generalizado para el manejo del banco de datos (o base
de datos) (GDBMS), se usa para almacenar, recopilar, actualizar, agregar y eliminar datos de
un banco; el DML incluye a todos los comandos para entrada / salida y otros para navegación
en el banco; los comandos del DML se usan en la división de procedimientos de un programa
en cobol.

QUERY LANGUAJE (LENGUAJE PARA CONSULTAS)

Lenguaje de alto nivel para manipulación de datos que permite la interacción con el archivo o
banco de datos; el lenguaje está muy orientado al no-programador, no recurre al uso de
procedimientos y es semejante al lenguaje natural. El lenguaje de consultas de un GDBMS ha
sido diseñado para atender rápidamente solicitudes de acceso y almacenamiento de pequeños
volúmenes basados en criterios complejos sobre el contenido del banco de datos.

A continuación seMODELO
presenta un esquema que MODELO
muestra la arquitectura para
ESQUEMAS el SMBD:
EXTERNO A EXTERNOS EXTERNO B
USUARIO 1 USUARIO 2 USUARIO 3 USUARIO 4
MAPEO EXTERNO
Lenguaje 1 Lenguaje 2 CONCEPTUAL Lenguaje 3 Lenguaje 4
Área de trabajo Área de trabajo Área de trabajo Área de trabajo
MODELO CONCEPTUAL
ESQUEMA
(MODELO DE DATOS)
CONCEPTUAL

SISTEMA
MAPEO CONCEPTUAL INTERNO MANEJADO
R DE BD

MAPEO INTERNO

(DEFINICIÓN DE LA
ESTRUCTURA DE MODELO INTERNO
ALMACENAMIENTO)
La arquitectura consta de tres niveles:

1.- NIVEL INTERNO.- Es el más cercano al almacenamiento físico. Se refiere a la forma en que
realmente están almacenados los datos (en ceros y unos). Consta de múltiples ocurrencias
de registros almacenados (la misma información pero de diferente matrícula). Se define
usando un DDL interno.
2.- NIVEL EXTERNO.- Es el más cercano al usuario, se refiere a la forma en que el usuario ve
los datos, es decir, la manera en la cuál los datos están considerados por los usuarios
individualmente. A este nivel los usuarios tienen un lenguaje a su disposición, el Query
(Lenguaje de consultas) ó programas con menús.
3.- NIVEL CONCEPTUAL.- Es la correspondencia entre los dos niveles. Es una vista de
comunidad. Trata de expresar como son los datos realmente. Se define la vista conceptual
usando un DDL particular.

1.3 USUARIOS DE LAS BASES DE DATOS

Los usuarios finales son las personas que no tienen que saber como se almacenan los datos.

ADMINISTRADOR DE LA BASE DE DATOS: Su función es la de controlar toda la base de datos,


en otras palabras supervisar y mantener la vista lógica global de los datos. En general tiene a
su cargo tanto el control y la administración, como el uso de la totalidad del banco de datos.
1.- Es responsable de decidir el contenido de la base de datos
2.- Decidir la estructura de almacenamiento y estrategias de acceso
3.- Interactúa con usuario
4.- Definir chequeos de integridad y seguridad
5.- Definir estrategias de respaldo y de recuperación
6.- Monitorear el desempeño y respuesta del DBMS

1.4 RELACIONES ENTRE DATOS

RELACIÓN: Conectividad existente entre los atributos de una entidad o entre entidades. Es
decir, los atributos en relación a algo (englobados) conforman una entidad.

Existen 4 tipos de relaciones:

1.- Relación 1:1 (uno a uno). Un conjunto de atributos de relación 1:1 forman una entidad.
Por ejemplo, un número de atributos tiene una sola restricción, un costo, etc.
2.- Relación 1:N débil (cero, uno o más). Se da siempre en entidades. Por ejemplo, un
cliente tiene muchas facturas.
3.- Relación 1:N fuerte (uno más).
4.- Relación N:M (varios a varios). Por ejemplo, una ciudad tiene varias tiendas, pero
varias tiendas pueden existir en varias ciudades.

1.5 TIPOS DE MODELOS DE DATOS

¿Qué es el modelo de datos?


Se llama así a la descripción lógica de la base de datos. Es un diagrama de los tipos de datos
que se usan. Proporciona los nombres de las entidades y sus atributos y especifica las
relaciones que existen entre ellos. A la representación gráfica de éste se llama esquema.

MODELOS DE LISTA O PLANOS

MODELOS JERARQUICOS O ARBORESCENTES


Una base de datos jerárquica consiste en un conjunto de registros que se conectan entre sí por
medio de ellos. Un registro es un conjunto de campos (atributos), en cada uno de los cuales
contienen sólo un valor. Una liga es una asociación entre los registros.

Las estructuras fundamentales en el modelo jerárquico las forman los árboles por los que se
conocen también como gráficas que no forman ciclos. Un árbol consta de nodos conectados y
uniones, el nodo superior se conoce como raíz y todos los nodos que no tienen hijos como las
copas. Todo nodo de árbol exceptuando la raíz, tienen exactamente un padre, mientras que un
padre puede tener varios hijos. En un árbol no se permiten las asociaciones entre hermanos,
esto significa que los nodos al mismo nivel no se pueden unir.

En una jerarquía, como modelo conceptual, en cada nodo se sitúa un tipo de registro
diferente. Cada tipo de registro está formado por datos, de los cuales unos sirven para
identificar en forma única al registro, ya que estos son interpretados como llave, los enlaces
entre tipos de registros no llevan nombre, ya que solo puede existir una asociación entre dos
tipos de registros y la relación padre- hijo es obvia.

La siguiente figura muestra una jerarquía con un tipo de registro en cada nodo.

CURSO

# DE CURSO NOMBRE DESCRIPCIÓN

PRE OFRECERÁ
REQUISITO
# DE CURSO NOMBRE FECHA LUGAR FORMATO

ESTUDIANT
MAESTRO E
# EMPLEADO NOMBRE # NOMBRE GRADO
EMPLEADO

Es claro que debe existir el padre para que e hijo también exista. Por lo tanto, la eliminación
de un padre trae consigo la eliminación de todos los hijos. En un sistema jerárquico la entrada
siempre es por el nodo superior, generalmente a la raíz y luego se prodigue hacia los hijos,
examinando su contenido para ver si se cumple con los requerimientos establecidos.

La principal desventaja de los modelos jerárquicos es que no permiten asociar a un hijo con
más de un padre. Esto trae como consecuencia la introducción de uniones redundantes para
poder representar todas las relaciones que se requieren. Al hacer redundancia, se corre el
riesgo de generar inconsistencia, sin contar con la duplicidad de espacio.

La ventaja más importante radica en su eficiencia, siempre y cuando la aplicación sea


representable como jerarquía en forma natural.

MODELOS RETICULARES

MODELO O ENFOQUE RELACIONAL

La arquitectura relacional fue promovida por E. Codd alrededor de 1970. Esta arquitectura
consiste en relaciones y operadores que actúan sobre esas relaciones.
Una relación puede visualizarse como una tabla. Es importante notar la diferencia entre el
concepto de relación en esta última, nos referimos siempre a una asociación entre tipos de
registro. En cambio, relación en la arquitectura relacional se refiere a una estructura tabular.

Cada renglón de una relación se denomina una n-ada (registro) y cada columna representa un
atributo. Los encabezados de cada columna (atributos) son los tipos de datos representados
en la relación, mientras que los elementos que aparecen en cada columna son los valores
particulares que toman los atributos.

En la figura siguiente se muestran dos relaciones diferentes:

PRODUCTOS PROVEEDOR
# Nom. Prod. Tipo Precio # Prov. Nom. Prov. Status Ciudad
Prod.

P-050 Martillo Zinc 12.75 S-100 Armando 10 Chih.


P-055 Tornillo Plomo 10.80 S-300 Javier 20 Dur.
P-060 Pincel Plomo 19.30 S-400 Lourdes 10 Parr.
P-070 Desarmado Acero 14.10 S-500 Mario 20 Torr.
P-100 r Zinc 12.75 S-800 Raúl 30 Chih.
Broca S-910 Letty 30 Vic.

RELACIÓN
Productos Proveedores
# Atributos 4 4

No. N - adas 5 6

Se dice que cuando una tabla tiene N columnas la relación es de N grados. Las relaciones de 2
grados se llaman binarias; las de 3 grados terciarias y la de N grados enearias. No es
necesario que exista un orden, puesto que la relación es un conjunto y en los conjuntos no hay
orden definido.

Sin embargo, a veces será conveniente definir un orden para propósitos de acceso a la
información en una relación.

RELACIÓN S DE PROVEEDORES
Atributos

Llave
S# Nombre Status Ciudad Dominio
Primaria
S1 Smith 30 Londres
S2 Jones 20 París
S3 Blake 10 París Tuples
S4 Clark 20 Londres
S5 Adams 30 Atenas

Se puede observar que la relación productos tiene 4 atributos, los cuáles son: # prod., Nom.
Prod., Tipo, Precio.
Se tiene en este caso particular cinco n-adas que significan los productos que se manejan, por
ejemplo: la n-ada (P-100, broca, zinc, 12.75) representa la distancia de producto que se
identifica por medio del número de producto P-1000 y es una broca de zinc que cuesta 12.75.

Con frecuencia se utilizan los conceptos de dominio y atributo en forma indistinta.


Estrictamente, el atributo es el tipo de dato, o sea, el nombre que define el significado de los
valores; mientras que el dominio es el conjunto de valores que puede tomar el atributo.

Al igual que en las arquitecturas anteriores se tiene una forma única de identificar un registro,
es decir, se requiere una llave. En la arquitectura relacional una llave es el valor o conjunto de
valores de uno o más atributos necesarios para identificar en forma única una n-ada. Si solo
interviene un atributo en la llave, hablamos de una llave simple; si son dos o más atributos, se
trata de una llave compuesta.
Uno de los conceptos fundamentales en la arquitectura relacional es el de dependencia
funcional. Por ejemplo: dados dos atributos, a y b decimos que b es funcionalmente de a, si en
cualquier momento hay un máximo valor de b para cada valor de a.

Algunas de las propiedades que deben poseer las tablas o relaciones son las siguientes:
 En cada cantidad hay un ítem de datos (campos)
 No hay grupos repetitivos
 Son homogéneos por columna
 Todas las filas son diferentes

Tanto las filas las columnas pueden ser consideradas en cualquier secuencia y en cualquier
momento sin afectar por ello. La base de datos construida por medio de relaciones es una
base de datos relaciona. La base de datos es relacional cuando está construida con matrices
planas de ítems de datos.
TERMINOS EN EL ENFOQUE RELACIONAL

Relación.- Tabla
Tuples.- registros o renglones
Atributo.- Campo o columna
Llave primaria.- Identificador único
Dominio.- Posibles valores legales

Ejemplos de SMBD:

ENFOQUE DE LA BASE DE SISTEMA VENDEDOR


DATOS
RELACIONAL DB2 IBM
SQL/DB2 IBM
INGRESS RTI
ORACLE ORACLE CORP.
RDB/VMS DEC
JERÁRQUICO IMS IBM
SYSTEM 2000 INTEL

UNIDAD II.- BASE DE DATOS RELACIONALES

2.1 ESTRUCTURAR BÁSICAS DE LAS BASES DE DATOS RELACIONALES

2.1.1 Relaciones, Tablas o entidades

¿Qué es una entidad?


Cualquier objeto del cual se desean almacenar datos o características dentro de una BD.

¿Qué es un enlace o relación?


Como mencionamos anteriormente es la forma en que se relacionan las entidades, por
ejemplo: un departamento se relaciona con empleados de forma que un departamento puede
tener uno o más empleados; así mismo un empleado se relaciona con departamento de forma
que un empleado solo pertenece a un departamento.

2.1.2 Columnas, campos o atributos

¿Qué es un atributo?
Es una característica de un elemento de una entidad. Un elemento de una entidad es
implementado computacionalmente como un registro (también llamado tuplo).

2.1.3 Renglones o registros

2.1.4 Claves primarias y foráneas

2.1.5 Normalización

2.2 ÁLGEBRA RELACIONAL

2.3 VISTAS

Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas;
también se le puede considerar una tabla virtual.
Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es
que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante
una consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe
que se está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con
una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque
siempre es posible seleccionar datos de una vista, en algunas condiciones existen
restricciones para realizar el resto de las operaciones sobre vistas.
Una vista se especifica a través de una expresión de consulta (una sentencia SELECT) que la
calcula y que puede realizarse sobre una o más tablas. Sobre un conjunto de tablas
relacionales se puede trabajar con un número cualquiera de vistas.
La mayoría de los DBMS soportan la creación y manipulación de vistas.
Descripción de vistas
Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una
tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin
embargo, a menos que esté indizada, una vista no existe como conjunto de valores de datos
almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las
que se hace referencia en la consulta que define la vista y se producen de forma dinámica
cuando se hace referencia a la vista.
Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. La
consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de
la base de datos actual u otras bases de datos. Asimismo, es posible utilizar las consultas
distribuidas para definir vistas que utilicen datos de orígenes heterogéneos. Esto puede
resultar de utilidad, por ejemplo, si desea combinar datos de estructura similar que proceden
de distintos servidores, cada uno de los cuales almacena los datos para una región distinta de
la organización.
No existe ninguna restricción a la hora de consultar vistas y muy pocas restricciones a la hora
de modificar los datos de éstas.
En esta ilustración se muestra una vista basada en dos tablas.

Utilidad de las vistas


En lugar de ser todo el esquema externo de un usuario, una vista es una relación virtual, una
relación que en realidad no existe como tal. Una vista se puede construir realizando
operaciones como las del álgebra relacional: restricciones, proyecciones, concatenaciones,
etc. a partir de las relaciones base de la base de datos. Las relaciones base son aquellas que
forman parte directa de la base de datos, las que se encuentran almacenadas físicamente. Un
esquema externo puede tener tanto relaciones base como vistas derivadas de las relaciones
base de la base de datos.
Una vista es el resultado dinámico de una o varias operaciones relacionales realizadas sobre
las relaciones base. Una vista es una relación virtual que se produce cuando un usuario la
consulta. Al usuario le parece que la vista es una relación que existe y la puede manipular
como si se tratara de una relación base, pero la vista no está almacenada físicamente. El
contenido de una vista está definido como una consulta sobre una o varias relaciones base.
Cualquier operación que se realice sobre la vista se traduce automáticamente a operaciones
sobre las relaciones de las que se deriva. Las vistas son dinámicas porque los cambios que se
realizan sobre las tablas base que afectan a una vista se reflejan inmediatamente sobre ella.
Cuando un usuario realiza un cambio sobre la vista (no todo tipo de cambios están
permitidos), este cambio se realiza sobre las relaciones de las que se deriva.
Las vistas son útiles por varias razones:
• Proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de
datos a ciertos usuarios. El usuario no sabrá que existen aquellos atributos que se han
omitido al definir una vista.
• Permiten que los usuarios accedan a los datos en el formato que ellos desean o
necesitan, de modo que los mismos datos pueden ser vistos con formatos distintos por
distintos usuarios.
• Se pueden simplificar operaciones sobre las relaciones base que son complejas. Por
ejemplo, se puede definir una vista como la concatenación de dos relaciones. El usuario
puede hacer restricciones y proyecciones sobre la vista, que el SGBD traducirá en las
operaciones equivalentes sobre la concatenación.
Se puede utilizar una vista para ofrecer un esquema externo a un usuario de modo que éste lo
encuentre `familiar'. Por ejemplo:
• Un usuario puede necesitar los datos de los directores junto con los de las oficinas. Esta
vista se crea haciendo una concatenación de las relaciones PLANTILLA y OFICINA, y
proyectando sobre los atributos que se desee mantener.
• Otro usuario puede que necesite ver los datos de los empleados sin ver el salario. Para
este usuario se realiza una proyección para crear una vista sin el atributo salario.
• Los atributos se pueden renombrar, de modo que cada usuario los vea del modo en que
esté acostumbrado. También se puede cambiar el orden en que se visualizan las
columnas.
• Un miembro de la plantilla puede querer ver sólo los datos de aquellos inmuebles que
tiene asignados. En este caso, se debe hacer una restricción para que sólo se vea el
subconjunto horizontal deseado de la relación INMUEBLE.
Como se ve, las vistas proporcionan independencia de datos a nivel lógico, que también se da
cuando se reorganiza el nivel conceptual. Si se añade un atributo a una relación, los usuarios
no se percatan de su existencia si sus vistas no lo incluyen. Si una relación existente se
reorganiza o se divide en varias relaciones, se pueden crear vistas para que los usuarios la
sigan viendo como al principio.
Cuando se actualiza una relación base, el cambio se refleja automáticamente en todas las
vistas que la referencian. Del mismo modo, si se actualiza una vista, las relaciones base de las
que se deriva deberían reflejar el cambio. Sin embargo, hay algunas restricciones respecto a
los tipos de modificaciones que se pueden realizar sobre las vistas. A continuación, se
resumen las condiciones bajo las cuales la mayoría de los sistemas determinan si se permite
realizar una actualización:
• Se permiten las actualizaciones de vistas que se definen mediante una consulta simple
sobre una sola relación base y que contienen la clave primaria de la relación base.
• No se permiten las actualizaciones de vistas que se definen sobre varias relaciones
base.
• No se permiten las actualizaciones de vistas definidas con operaciones de agrupamiento
(GROUPBY).
2.3.2. Privilegios de acceso
Los conjuntos de privilegios pueden limitar el acceso a los registros de un archivo. En un
archivo, puede configurar:
Privilegios para todas las tablas: puede limitar si un conjunto de privilegios permite
crear, editar y eliminar registros en todas las tablas del archivo.
Privilegios personalizados para tablas individuales: puede configurar límites de
acceso a registros individuales para cada tabla. Por ejemplo, el conjunto de privilegios
puede limitar la posibilidad de:
Ver, editar, crear o eliminar todos los registros
en cada tabla.
Ver, editar y eliminar determinados registros en cada tabla. Los privilegios se limitan por
medio de un cálculo que devuelve un resultado booleano para cada registro. Cuando el
cálculo se evalúa como True, se permite el acceso a esa actividad en concreto (como ver
el registro). Cuando el cálculo se evalúa como False, se prohíbe el acceso a esa
actividad.
Acceder o modificar determinados campos de cada tabla. Cuando se restringe el acceso
a uno o más campos de una tabla que, por lo demás, está visible, el usuario verá <Sin
acceso> en lugar de los datos del campo.
Sólo puede configurar los privilegios de acceso a registros para las tablas definidas en el
archivo actual. Si el archivo contiene relaciones con tablas de otros archivos que quiere
proteger, tiene que crear cuentas y conjuntos de privilegios en los demás archivos para
proteger esas tablas. Para obtener más información, consulte Proteger bases de datos.

Para editar privilegios de acceso a registros:


1 Comience editando un conjunto de privilegios nuevo o
. uno ya existente.
Para obtener más información, consulte Crear nuevos conjuntos de privilegios o Editar
conjuntos de privilegios existentes.
2 En el cuadro de diálogo Editar conjunto de privilegios, seleccione una de las siguientes
. opciones de la lista Registros:
Editar el conjunto de privilegios para Seleccione
Permitir la creación, edición y eliminación de Crear, editar y eliminar en todas
registros en todas las tablas las tablas y pase directamente al
paso 10.
Permitir sólo la creación y edición de registros Crear y editar en todas las tablas
(prohibir la eliminación de registros) en todas las y pase directamente al paso 10.
tablas
Permitir sólo la vista de registros (prohibir la Ver sólo en todas las tablas y pase
creación, edición y eliminación de registros) en directamente al paso 10.
todas las tablas
Prohibir el acceso a los registros en Todo sin acceso, y pase
todas las tablas directamente al paso 10.
Crear privilegios de acceso personalizado a los Privilegios personalizados, y
registros para tablas individuales continúe con el paso siguiente.

3 En el cuadro de diálogo Privilegios de registro personalizados, seleccione las tablas cuyos


. privilegios personalizados desee editar. (O bien seleccione Cualquier tabla nueva para
configurar los privilegios de cualquier tabla creada posteriormente.)
El cuadro de diálogo Privilegios de registro personalizados muestra las tablas del archivo y
los privilegios personalizados para cada tabla. Para cambiar los privilegios, comience por
seleccionar las tablas que desee cambiar y, a continuación, seleccione los privilegios en el
área Establecer privilegios de la parte inferior del cuadro de diálogo.
Para seleccionar una tabla, haga clic en
su nombre.
Para seleccionar varias tablas, pulse la tecla Control y haga clic (Windows) o pulse ⌘ y
haga clic (Mac OS) en cada nombre.
Para seleccionar un rango de tablas adyacentes, haga clic en el primer nombre y, a
continuación, pulse la tecla Mayús y haga clic en el último nombre del rango.
Para seleccionar todas las tablas, haga clic en
Seleccionar todo.
4 Para establecer privilegios personalizados para ver, editar, crear y eliminar registros,
. seleccione una de las opciones siguientes en las listas Vista, Edición, Crear y Eliminar del
área Establecer privilegios:
Seleccione Para
S Permitir el privilegio (ver, editar, crear o
í eliminar registros).
Limitado Permitir o prohibir el privilegio (ver, editar y eliminar registros) para
(disponible cuando determinados registros dentro de la tabla.
sólo se selecciona En el cuadro de diálogo Especificar cálculo, introduzca un cálculo y
una tabla) haga clic en Aceptar. Para obtener más información sobre cómo
especificar el cálculo, consulte Introducir una fórmula para limitar el
acceso registro a registro más abajo.
N Prohibir el privilegio (ver, editar, crear o
o eliminar registros).

Nota Impide la creación de combinaciones inconsistentes para ver, editar, crear o eliminar
privilegios. Por ejemplo, es muy probable que no quiera que los usuarios eliminen registros
que no pueden ver.
5 Para limitar el acceso o la modificación de ciertos campos dentro de una tabla, continúe en
. el paso siguiente. En caso contrario, vaya directamente al paso 9.
6 Seleccione la tabla que contiene los campos cuyo acceso quiere limitar. Después, en
. Acceso a campos, seleccione Limitado.
7 En el cuadro de diálogo Privilegios de campo personalizados, seleccione los campos cuyo
. acceso quiere limitar (o seleccione Cualquier campo nuevo para establecer privilegios
personalizados para cualquier campo creado posteriormente). A continuación, seleccione
una de las opciones siguientes:
Seleccio
ne Para
Modifica Permitir la vista y edición de los datos
ble del campo.
Sólo Permitir la vista de los datos del campo. (No se permite la edición de los
vista datos del campo.)
Sin Se prohíbe el acceso al
acceso campo.
Nota Cuando se prohíbe el acceso a uno o más campos de una tabla que, por
lo demás, está visible, el usuario verá <Sin acceso> en lugar de los datos del
campo.
8 Haga clic en
. Aceptar.
9 Haga clic en
. Aceptar.
Aparece el cuadro de diálogo Editar conjunto
de privilegios.
1 Gestione cualquier otro privilegio para el conjunto
0. de privilegios.
Para obtener más información sobre los diferentes privilegios que puede
definir, consulte:
Editar privilegios de
presentaciones
Editar privilegios de listas de
valores
Editar privilegios de
guiones
Editar privilegios ampliados para un conjunto
de privilegios
Editar otros
privilegios
1 Cuando haya terminado de editar el conjunto de privilegios, haga
1. clic en Aceptar.
1 En el cuadro de diálogo Gestionar cuentas y privilegios, realice una de las
2. opciones siguientes:
Cuando haya terminado de trabajar con cuentas y privilegios, haga clic en Aceptar. En
el cuadro de diálogo que aparece, introduzca un nombre de cuenta y una contraseña
que esté asignada al conjunto de privilegios de acceso completo y haga clic en Aceptar.
Para asignar el conjunto de privilegios a una o más cuentas, consulte Crear cuentas o
Editar cuentas existentes.

Notas
En los cuadros de diálogo Privilegios de registro personalizados y Privilegios de campo
personalizados puede ordenar la lista de tablas o campos mostrados haciendo clic en
cualquiera de las cabeceras de columna. Para cambiar de orden ascendente o descendente,
realice una de las opciones siguientes:
Windows: haga clic de nuevo en la cabecera
de columna.
Mac OS: haga clic en el botón de
flecha .
Si prohíbe la creación de registros en un archivo o tabla, se prohíbe también la
duplicación de registros.
Los usuarios que no pueden ver ciertos registros pueden navegar por ellos, pero verán <Sin
acceso> en lugar de los datos del campo dentro de cada registro.
Muchas funciones de FileMaker Pro se ven afectadas cuando limita el acceso a los registros,
los campos y las tablas dentro de un archivo. La tabla siguiente resume los efectos en
algunas funciones.
Función Efecto de limitar el acceso a los datos
Actualizaciones y Las actualizaciones y reactualizaciones están definidas por tres
reactualizaciones componentes, que se ven afectados todos ellos por los
privilegios de acceso a los datos:
Como mínimo, los campos coincidentes usados en la relación
deben tener privilegios de visualización. Además, no se
producirá ninguna actualización en ningún registro que no se
pueda ver en las tablas de origen y de destino, porque no
puede producirse ninguna coincidencia en estas
circunstancias. Esto incluye el primer registro coincidente
relacionado, así como cualquier registro empleado para copiar
el siguiente valor inferior o superior.
Como mínimo, el campo de origen de la actualización debe
tener privilegios de visualización.
El campo de destino de la actualización debe tener
privilegios de edición.
FileMaker Pro no muestra ningún mensaje de error si una
operación de actualización omite ciertos registros debido a las
restricciones del privilegio de acceso.
Acceso a datos Como mínimo, los dos campos coincidentes en una relación
relacionados deben tener privilegios de visualización para que funcione la
relación. Cualquier campo relacionado que desee mostrar
basándose en los campos coincidentes también debe tener,
como mínimo, privilegios de visualización.
Búsqued El conjunto encontrado siempre se filtra para mostrar sólo
as aquellos registros que tengan, como mínimo, privilegios de
visualización. Los resultados de la función Get ( foundCount )
también se ven afectados si se limita el acceso.
Listas de Cuando una lista de valores se basa en el contenido de un
valores campo y se prohíben los privilegios de visualización en el
campo, la lista de valores no muestra ningún valor. De esta
forma, los usuarios no pueden acceder por descuido a
información confidencial. Los resultados de la función
ValueListItems también se ocultan cuando el acceso es limitado.
Campos de sumario y Los resultados mostrados en los campos de sumario y en los
campos calculados campos calculados que resumen varios registros excluirán los
datos de los registros cuyos privilegios de visualización se
hayan prohibido.
Buscar/Reemplazar, Un usuario sólo puede cambiar datos con estas
Reemplazar contenido y funciones en:
comprobación los registros que tengan privilegios
ortográfica de edición.
los campos que sean
modificables.
Guion Puede configurar una opción para que un guión se ejecute con
es privilegios de acceso completos, lo que permite al guión
ejecutar operaciones que normalmente no podría hacer un
usuario con privilegios de acceso limitados. Si no habilita esta
opción, cualquier paso de guión que intente acceder o cambiar
datos restringidos fallará. Para obtener más información,
consulte Crear y editar guiones usando ScriptMaker.
Eventos de Los privilegios de acceso a los datos pueden afectar a la
Apple capacidad del usuario de obtener, establecer y eliminar datos
mediante eventos de Apple. Algunos comandos de los eventos
de Apple pueden fallar si el usuario no dispone de los privilegios
de acceso apropiados.

Introducir una fórmula para limitar el acceso registro a registro


Para permitir o prohibir los privilegios de visualización, edición y eliminación para
determinados registros de una tabla, tiene que especificar un cálculo booleano que determine
cuándo se permite el privilegio. Para cada registro de la base de datos, se permite el acceso
cuando el cálculo se evalúa como True o un resultado distinto de cero y se prohíbe el acceso
cuando el cálculo se evalúa como False o cero. A continuación se muestran dos ejemplos:
Para limitar el acceso a sólo aquellos registros creados por la cuenta actual:
defina un campo de texto llamado Registro_creado_por y configure la opción de
introducción automática para que el campo introduzca automáticamente el nombre de
cuenta al crear el registro. (Para obtener más información, consulte Definir la entrada de
datos automática.) Después utilice el cálculo siguiente al definir privilegios de acceso
personalizados para el registro:
Registro_creado_por = Get
( AccountName )
El usuario sólo tendrá acceso de visualización a aquellos registros cuyo cálculo anterior
se evalúe como True.
Para limitar el acceso a sólo aquellos registros creados en la fecha actual: defina
un campo de fecha llamado Fecha_creación_registro y configure la opción de introducción
automática para que el campo introduzca la fecha de creación cuando se cree el registro.
(Para obtener más información, consulte Definir la entrada de datos automática.) Después
utilice el cálculo siguiente al definir privilegios de acceso personalizados para el registro:
Fecha_creación_registro= Get
( currentDate )
El usuario sólo tendrá acceso de visualización a aquellos registros cuyo cálculo anterior
se evalúe como True.
Consejo Si especifica un cálculo para prohibir la vista de ciertos registros dentro de una
tabla, en la mayoría de los casos debería usar el mismo cálculo para prohibir la edición y la
eliminación de los mismos tipos de registros. En caso contrario, los usuarios podrían editar o
eliminar por descuido registros que no pueden ver.

Notas
El cálculo booleano que determina los privilegios de acceso a los registros puede tener
resultados inesperados, en particular si está basado en un campo editable por el usuario.
Por ejemplo, es posible que un usuario con privilegios de acceso únicamente para ciertos
registros deniegue por equivocación el acceso a un registro después de editarlo. El usuario
podría realizar un cambio en el contenido de un registro que modifique el resultado del
cálculo booleano de acceso al registro para que se evalúe como False. Entonces el usuario
ya no podría ver, editar ni eliminar el registro una vez que salga de él. Como los cambios se
consignan tan pronto como el usuario sale del registro, el usuario que realice cambios de
este tipo no podrá volver al registro. (En la mayoría de los casos, debería basar los cálculos
de acceso a los registros en campos que no sean directamente editables por los usuarios,
como campos de introducción automática que contengan nombres de cuenta, fechas de
creación y fechas de modificación.)
Además, si se comparte el archivo y si el cálculo booleano que determina los privilegios de
acceso a registros contiene uno o varios campos globales, se puede mejorar el rendimiento
de la red transfiriendo algunos campos globales a otra tabla. Para obtener más información,
consulte la sección Notas de Definir campos globales (campos con almacenamiento global).
Para poder ofrecer una compatibilidad total con varias ventanas que contienen sus propios
conjuntos encontrados, los valores de sumario forman parte del conjunto encontrado. (No
hay ningún único valor de sumario para un archivo único como en FileMaker Pro 6 y
versiones anteriores.) Un registro puede aparecer en varias ventanas y cada una de ellas
tiene su propio conjunto encontrado y tipo de ordenación. Estos son los motivos por los que
no debe basar los cálculos de privilegios en funciones de sumario ni en funciones Get
basadas en valores que empleen un conjunto encontrado determinado.

2.4 Lenguaje Relacional estándar


2.4.1 Lenguaje de Consultas Estructurado (SQL)

4.1 Manejo de Funciones

Operadores lógicos
En SQL, todos los operadores lógicos se evalúan a TRUE, FALSE, o NULL (UNKNOWN). En
MySQL, se implementan como 1 (TRUE), 0 (FALSE), y NULL. La mayoría de esto es común en
diferentes servidores de bases de datos SQL aunque algunos servidores pueden retornar
cualquier valor distinto a cero para TRUE.
• NOT, !
NOT lógica. Se evalúa a 1 si el operando es 0, a 0 si el operando es diferente a cero, y
NOT NULL retorna NULL.
mysql> SELECT NOT 10;
-> 0
mysql> SELECT NOT 0;
-> 1
mysql> SELECT NOT NULL;
-> NULL
mysql> SELECT ! (1+1);
-> 0
mysql> SELECT ! 1+1;
-> 1
El último ejemplo produce 1 porque la expresión se evalúa igual que (!1)+1.
• AND, &&
AND lógica. Se evalúa a 1 si todos los operandos son distintos a cero y no NULL, a 0 si
uno o más operandos son 0, de otro modo retorna NULL.
mysql> SELECT 1 && 1;
-> 1
mysql> SELECT 1 && 0;
-> 0
mysql> SELECT 1 && NULL;
-> NULL
mysql> SELECT 0 && NULL;
-> 0
mysql> SELECT NULL && 0;
-> 0
• OR, ||
OR lógica. Cuando ambos ooperandos son no NULL, el resultado es 1 si algún operando
es diferente a cero, y 0 de otro modo. Con un operando NULL el resultado es 1 si el otro
operando no es cero, y NULL de otro modo. Si ambos operandos son NULL, el resultado
es NULL.
mysql> SELECT 1 || 1;
-> 1
mysql> SELECT 1 || 0;
-> 1
mysql> SELECT 0 || 0;
-> 0
mysql> SELECT 0 || NULL;
-> NULL
mysql> SELECT 1 || NULL;
-> 1
• XOR
XOR lógica. Retorna NULL si algún operando es NULL. Para operandos no NULL , evalúa
a 1 si un número par de operandos es distinto a cero, sino retorna 0.
mysql> SELECT 1 XOR 1;
-> 0
mysql> SELECT 1 XOR 0;
-> 1
mysql> SELECT 1 XOR NULL;
-> NULL
mysql> SELECT 1 XOR 1 XOR 1;
-> 1
a XOR b es matemáticamente igual a (a AND (NOT b)) OR ((NOT a) and b).

You might also like