• No se han encontrado resultados

INTRODUCCIÓN A LAS BASES DE DATOS Y MODELOS DE DATOS

N/A
N/A
Protected

Academic year: 2021

Share "INTRODUCCIÓN A LAS BASES DE DATOS Y MODELOS DE DATOS"

Copied!
25
0
0

Texto completo

(1)

BDA0120

A LAS BASES DE

DATOS Y MODELOS DE DATOS

Bases de Datos

Bloque 1

(2)

El presente material recopila una serie de definiciones, explicaciones y ejemplos prácticos de autores especializados que te ayudarán a comprender los temas principales de este bloque.

Las marcas usadas en la antología son única y exclusivamente de carácter educativo y de investigación, sin fines

(3)

1. Sistemas de bases de datos

Un sistema gestor de bases de datos (SGBD), como su nombre lo señala, proporciona un acceso controlado a la base de datos, a diferencia de los sistemas de archivos, en los que los programas de aplicación trabajan de manera directa sobre los archivos de datos. Con esta funcionalidad el sgbd se convierte en una herramienta de gran utilidad; sin embargo, no todos los sgbd presentan la misma funcionalidad, esto depende de cada producto (Martos et al., 2004). De manera general, los grandes sgbd multiusuario ofrecen todas las funciones que se acaban de citar e incluso más. De acuerdo con Martos et al. (2004), los sistemas modernos pueden definirse como conjuntos de programas con una gran complejidad y sofisticación, y con una gran cantidad de líneas.

1.1. Base de datos

El concepto de bases de datos se encuentra asociado a una gran cantidad de áreas tanto en el ámbito de investigación científica como en los negocios, e inclusive se aplica en ámbitos tales como los multimedios.

Las bases de datos son utilizadas para buscar, ordenar, calcular y compartir datos. En la actualidad el procesamiento de datos es esencial en todas las empresas y organizaciones, debido a que estos datos pueden ser compartidos y usados por varias instituciones de forma simultánea. Un ejemplo muy claro es lo que ocurre en los bancos, en donde un gran número de transacciones se realiza todos los días para la realización de operaciones financieras.

De acuerdo con Marqués (2011), el concepto de base de datos se define como conjunto autodescriptivo de datos integrados, almacenados en memoria externa, pertenecientes a un mismo contexto, denomi- nado campo semántico, los cuales están organizados mediante una estructura de datos con el objetivo de satisfacer los requisitos de información de una organización o persona. Al respecto, Kroenke, 2003 menciona lo siguiente:

Una base de datos es autodescriptiva porque contiene, además de los datos fuente del usuario, una des- cripción de su propia estructura. Esta descripción se llama diccionario de datos también conocido como metadatos. En este sentido, una base de datos es similar a una biblioteca, la cual integra una colección de libros autodescriptivos (Kroenke, 2003, p. 15).

La biblioteca contiene libros, un catálogo de tarjetas que los reseñan, así como un diccionario de datos, el cual es parte de la base y, al igual que el catálogo de tarjetas, forma parte de la biblioteca y describe lo que contiene la base de datos. Que una base de datos sea auto descriptiva fomenta la independencia de datos/programas, es decir, hace posible determinar la estructura y el contenido de la base de datos

Introducción a las bases de datos y modelos de datos

(4)

examinándola de forma independiente del programa utilizado para acceder a ella. Sumado a todo esto, incluye índices que son utilizados para representar las relaciones entre los datos para mejorar el desarrollo de las aplicaciones de la base.

Los objetivos que se persiguen al hacer uso de las bases de datos es contar con independencia lógica y física de los datos, evitar la duplicación y redundancia de estos, facilitar el acceso concurrente por parte de múltiples usuarios, mejorar la distribución espacial de los datos, su integración, la consultas de datos complejos optimizados, el respaldo, así como la recuperación y acceso de ellos a través de un lenguaje de programación estándar.

1.2. Sistema de gestión de base de datos

Por otra parte, un sistema de gestión de base de datos (sgbd) o sistema manejador de bases de datos es un conjunto de programas interrelacionados que permiten definir, crear y mantener una base de datos para permitir el acceso controlado, rápida y estructurada (Marqués, 2011). Como puedes observar, dentro de un sgbd puede haber muchas bases de datos a fin de poder utilizarlos, inclusive, de manera simultánea.

Dichos sgbd permiten garantizar que los datos sean:

— Fiables a pesar de fallas o intentos de acceso no autorizados

— Fáciles de acceder

— Aislados y seguros

— Accesibles aun en caso de un acceso concurrente

La estructura de un SGBD basado en el American National Standards Institute (ANSI), por sus siglas en inglés, se muestra a continuación:

Figura 1. Estructura de un SGBD basado en ANSI Vista externa

de los usuarios.

GUI1 o Interfaz

METADATOS Esquema interno de la base de datos

Es la capa que accede a los datos físicos en memoria

Comunica las aplicaciones con el diccionario de datos.

MOTOR DE LA BASE DE DATOS

Realiza la traducción física de las

peticiones al Sistema Operativo (SO)

(5)

Las características fundamentales de un sgbd adecuado son:

— Independencia: los datos se organizan independientemente de las aplicaciones que los vayan a usar (independencia lógica) y de los archivos en los que vayan a almacenarse (independencia física).

— Definición: se define cada dato que conforma la base de datos mediante un diccionario de datos.

— Los usuarios y las aplicaciones pueden manipular o acceder a los datos mediante el uso de lenguajes de consulta (por ejemplo, el Lenguaje de Consulta Estructurada (Structured Query Language, SQL).

— Centralización: los datos se gestionan de forma centralizada e independiente de las aplicaciones.

— Consistencia e integridad de los datos.

— Fiabilidad, protección frente a fallos, y seguridad, acceso controlado a la base de datos.

1.3. Modelo de datos

Para poder representar la realidad, ya sea de alguna parte de ésta o la forma en cómo interrelacionan elementos en un determinado evento o negocio se requiere de un modelo. Siguiendo a Marqués (2011), un modelo es una representación de conceptos que sirven para describir la estructura de una base de datos, es decir, los datos, las relaciones entre ellos y las restricciones que deben cumplir, así como las operaciones necesarias para la realizar consultas y actualizarlos.

En este sentido una base de datos es un modelo, de hecho, es un modelo del modelo del usuario. Las bases de datos varían en su nivel de detalle, algunas son simples y burdas, otras complejas. El grado de detalle que debe incorporarse a una base de datos depende del tipo y cantidad de información que se requiera. Es evidente que mientras más información se necesite, la base de datos debe ser lo más detallada posible. Decidir la cantidad apropiada de detalles es una parte importante del trabajo que se requiere para el diseño de una base de datos.

Así, para poder construir una base de datos que opere dentro de un sgbd se requiere de su implementación a través de varios modelos. En la Figura 2 se presenta el modelo de datos para la implementación de una base de datos.

(6)

Figura 2. Modelo de datos utilizado en la construcción de una base de datos

Fuente: Kroenke (2003)

Conforme a lo presentado en la figura anterior, el primer paso que debes dar en la construcción de una base de datos es pasar de la complejidad de la realidad a un “mini mundo” o sistema simplificado en donde el usuario o persona que usará la base de datos genera los requisitos de información a través de un análisis de requerimientos. Este análisis debe ser realizado por el director del proyecto de diseño e implementación de la base de datos. Para ello, se deben conocer claramente las necesidades de este usuario pues, en función a éstas, es como se construirá el modelo conceptual de la base de datos también conocido como modelo entidad-relación (E-R).

Este modelo, a través de elementos gráficos, obtenidos del lenguaje UML, permite simplificar la realidad y transformarla en un “mapa” que utilizará el diseñador de la base de datos para sustentar su construcción.

Una vez definido el modelo E-R, el diseñador de la base de datos debe transformarlo, mediante algunas reglas, en los elementos necesarios para la arquitectura posterior del modelo lógico o relacional. La ventaja de este último modelo es que los datos se almacenan de tal forma que minimizan la duplicación y se eliminan ciertos tipos de errores de procesamiento que pueden ocurrir cuando se almacenan datos de otras maneras. Los datos se guardan en tablas, con renglones y columnas. De acuerdo con el modelo relacional, no todas las tablas son igual de deseables; por ello, haciendo uso de un proceso llamado normalización, una tabla se puede dividir en dos o más convirtiendo la estructura en un formato más eficiente para evitar, de esta forma, anomalías en la construcción y operación de la base de datos. Otra ventaja importante del modelo relacional es que las columnas contienen datos que relacionan un renglón con otro.

Por último, el modelo relacional se transforma en el modelo físico, el cual se implementa dentro de cualquiera de los muchos sgbd, ya sea propietarios o de tipo open source que se encuentran disponibles en el mercado para su operación y acceso dentro de una red de computadoras. Los modelos físicos

Realidad

Diseño conceptual

Diseño lógico

Requisito de información Esquema conceptual

Diseño físico

Esquema lógico

Esquema físico SGBD Minimundo

Análisis de requisitos

Diseño de datos

Base de datos

(7)

describen cómo se almacenan los datos en la computadora: el formato de los registros, la estructura de los archivos (si están desordenados, ordenados o agrupados), así como los métodos de acceso utilizados, tales como índices o tablas de dispersión.

1.4. Arquitectura de las bases de datos

La arquitectura de sistemas de bases de datos de tres niveles fue aprobada en 1975 por el American National Standard Institute - Standards Planning and Requirements Committee, ANSI-SPARC, por sus siglas en inglés, como ayuda para conseguir la separación entre los programas de aplicación y los datos, para el manejo de múltiples vistas por parte de los usuario, así como para el uso de un catálogo para alma- cenar el esquema de la base de datos. Esta arquitectura está sustentada en la arquitectura de sistemas de bases de datos de tres niveles, que se muestra en la Figura 3.

Figura 3. Modelo de datos utilizado en la construcción de una base de datos

De acuerdo con Marqués (2011), los niveles de para los Sistemas de Gestión de Base de Datos son los siguientes:

— Nivel interno: aquí se describe la estructura física de almacenamiento de la base de datos mediante un esquema interno. Emplea un modelo físico de datos y los únicos datos que existen están en este nivel, así como los métodos de acceso.

— Nivel conceptual: describe la estructura de toda la base de datos para una comunidad de usuarios.

Este esquema oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como entidades, atributos y relaciones.

Esquema de transacciones Diseño conceptual

Investigación

Modelo semántico

Tecnología de gestión de datos SGBD Req. de

Información Req. de procesos

Diseño lógico

- Esquema conceptual 1a fase: Análisis

2a fase: Diseño

3a fase: Implementación Diseño físico

Esquema lógico

Estática Dinámica

Esquema físico Carga de la

base de datos Programas

- Esquema conceptual - Esquema lógico - Esquema físico

Diseño conceptual:

Diseño lógico:

Diseño físico:

Fases del diseño

(8)

— Nivel externo: tiene varios esquemas externos o vistas de usuario. Cada esquema describe la visión que tiene de la base de datos a un grupo de usuarios, ocultando el resto de la base de datos.

Es importante mencionar que la arquitectura de tres niveles tiene como objetivo separar los programas de aplicación de la base física de datos.

Marqués (2011) apunta a que, en su mayoría, estos sistemas de gestión no se distinguen en estos en tres niveles, sin embargo, muchos cuentan con los tres niveles de arquitectura. Por su parte, los sgbd poseen algunos detalles del nivel físico en el esquema conceptual, pero casi todos manejan vista de usuario, pues los esquemas externos están especificados con el mismo modelo de datos que describe la información a nivel conceptual, aunque en algunos es factible utilizar diversos modelos de datos tanto en el nivel conceptual como en el externo.

Este mismo autor apunta que los únicos datos reales son aquellos que existen a nivel físico, ya que los niveles interno y externo sólo tienen datos con descripciones de los mismos datos, pero con distintos niveles de abstracción.

Otra observación de la misma fuente agrega que en un sgbd de tres niveles, cada grupo de usuarios hace referencia exclusiva a su esquema externo propio. Éste debe transformar cualquier solicitud a términos de un esquema externo a una solicitud expresada en términos del esquema conceptual. Por último, se volverá una solicitud en el esquema interno que será procesada sobre la base de datos ya almacenada.

Si es una consulta de datos, será necesario modificar el formato de la información extraída de la base de datos almacenada y así concuerde con la vista externa del usuario. El proceso de transformar peticiones y resultados de un nivel a otro se denomina transformación. Estas transformaciones pueden requerir bastante tiempo, por lo que algunos sgbd no cuentan con vistas externas.

Finalmente, Marqués (2011) apunta a que este modelo de arquitectura es útil para explicar el concepto de independencia de datos, definido como la capacidad para modificar el esquema en un nivel del sistema sin tener que alterar el esquema del nivel inmediato superior.

(9)

2. Modelo de datos conceptual

Una característica fundamental de los sistemas de bases de datos es que proporcionan cierto nivel de abstracción de datos, ya que ocultan las características sobre el almacenamiento físico que la mayoría de los usuarios no necesita conocer. Al respecto, Marqués (2011) agrega lo siguiente:

Un modelo de datos es un conjunto de conceptos que sirven para describir la estructura de una base de datos, es decir, los datos, las relaciones entre los datos y las restricciones que deben cumplirse sobre los datos. Los modelos de datos contienen también un conjunto de operaciones básicas para la realización de consultas, lecturas, y actualizaciones de datos.

2.1. Álgebra relacional

El álgebra relacional es un lenguaje procedural de alto nivel o conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones (R) o tablas, tal y como éstas son definidas en el modelo relacional las cuales son de tipo procedural, lo que quiere decir que el usuario indica al sistema la forma exacta de cómo debe manipular los datos. Otros son no procedurales, esto significa que el usuario indica qué datos necesita, en lugar de establecer cómo deben obtenerse.

El álgebra relacional cuenta con ocho operadores, de los cuales sólo cinco son fundamentales:

1. Selección o restricción 2. Proyección

3. Producto cartesiano 4. Diferencia

5. Unión

Los operadores fundamentales permiten realizar la mayoría de las operaciones de obtención de datos.

Los operadores no fundamentales son:

1. Concatenación (join) 2. Intersección

3. División

Los operadores no fundamentales se pueden expresar a partir de los fundamentales.

(10)

Notación de modelo relacional, definiciones básicas:

— Esquema de relación: R (A1, A2, ..., An)

— Relación (R): tabla formada por filas y columnas, conjunto de tuplas

— Tupla de grado n: función finita que asocia unequivocamente a los nombres de los campos de una relación con los valores de una instanciación de ésta. En términos simples, es una fila de una tabla relacional. t = (v1, v2, ..., vn). El grado es el número de atributos de R

Figura 4. Ejemplo relación

La Figura 4 presenta un ejemplo de una relación. A partir de esta relación, denominada alumnos, es posible extraer la tupla marcada en negritas de la siguiente forma:

t = (“Andrea Gómez”, “Av San Luis No. 45”, “F”, “18 - 08- 1988) El valor de t para el atributo Ai:t[Ai]

Una subtupla de t se determina como t[A1, A2, ..., An] donde Ai y representa a cada uno de los valores de tupla t.

— Dominio: Valores predeterminados en un atributo

Figura 5. Relación alumnos

Por ejemplo, considera la relación alumnos que se muestra en la Figura 5. A partir de ella es posible ob- tener los siguientes elementos:

— Esquema de relación: Alumnos (Nombre, Dirección, Género, Fecha de nacimiento)

— Tupla: t = (“Andrea Gómez”, “Av San Luis No. 45”, “F”, “18 - 08- 1988)

— Subtupla: t1 = (“Andrea Gómez”, “Av San Luis No. 45”)

— Valor de tupla: A = t[A ] = (“Av San Luis No. 45”)

Subtema

Nombre Dirección Género Fecha de

Nacimiento Carlos Fernández Calle12 No. 123

Relación: Alumnos

Atributos Tupla

09/09/1999 M

Andrea Gómez Av. San Luis No. 45 F 12/08/1988

Relación

Nombre Dirección Género Fecha de

Nacimiento Carlos Fernández Calle12 No. 123

Relación: Alumnos

09/09/1999 M

Andrea Gómez Av. San Luis No. 45 F 12/08/1988

Relación

(11)

Las operaciones fundamentales unitarias son las siguientes:

— La selección o restricción y la proyección son operaciones unitarias porque operan sobre una sola relación. El resto de las operaciones son binarias porque trabajan sobre pares de relaciones (Marqués, 2011).

— Los predicados o condiciones son sentencias a las cuales se les asigna un valor de verdad, dependiendo de la evaluación de las condiciones particulares que indique. De hecho, una condición es una combinación booleana, donde se pueden usar operadores como Λ y V combinados con los operadores <, >, <, >, =, �

Figura 6. Relación de sucursales

A partir de la información obtenida en la Figura 6, si quisieras saber cuáles son las sucursales de Madrid con activo mayor a 8000, se generaría la siguiente selección:

— Selección (σ)

La selección, también denominada restricción, opera sobre una sola relación R y da como resultado otra relación cuyas tuplas son las tuplas de R que satisfacen la condición o predicado especificado. Esta condición es una comparación en la que aparece al menos un atributo de R o una combinación booleana de varias de estas comparaciones. Es decir, permite seleccionar un subconjunto de tuplas de una relación R, con todas aquellas que cumplan las condiciones o predicados.

Por lo tanto, la sintaxis es la siguiente:

σ condición (R)

nombreSuc ciudadSuc Activo

Castellana Madrid 90000

Ganivet Granada 21000

Paseo Almería 17000

Zapillo Almería 4000

Ronda Almería 80000

Aduana Roquetas 3000

Los Pinos Huercal 37000

Sol Madrid 71000

Castellana

(12)

Ahora considera la relación mostrada en la Figura siete, a partir de ésta se requiere seleccionar el nombre del empleado que trabaja en la sucursal Zapillo ¿Cuál sería la operación de selección?

Figura 7. Relación empleados

— Proyección ( )

La proyección opera sobre una sola relación R y da como resultado otra relación que contiene un sub- conjunto vertical de R, extrayendo los valores de los atributos especificados y sin eliminar duplicados.

Permite extraer columnas (campos) de una relación, para dar como resultado un subconjunto vertical de campos de la relación. Su sintaxis es la siguiente:

Por ejemplo, a partir de la Figura 7, selecciona los atributos nombre del empleado, teléfono y nombre de sucursal de la relación Empleados.

Operaciones básicas binarias

— Unión (ᴗ)

Sean R y S dos relaciones, entonces la unión de estas dos se representa R ᴗ S la cual es el conjunto de los elementos que están en R o S o en ambos. Un elemento sólo aparece una vez. Las tuplas repetidas son eliminadas y las relaciones a unir han de ser compatibles (igual número de atributos y dominios, iguales dos a dos).

nombreEmp dniEmp teléfono NombreSuc

García 10 101010 Castellana

Torres 11 111111 Castellana

López 12 121212 Paseo

Villegas 13 131313 Paseo

Fernández 14 141414 Zapillo

Relación:

Empleados

(13)

Figura 8. Ejemplo unión

— Diferencia (-)

Incluye tuplas que están en una relación, pero no en la otra. En el caso de R-S, incluye las tuplas que están en R y no están en S.

Figura 9. Ejemplo de diferencia nombreEmp

García Torres López Villegas Fernández

Urrutia

nombreEmp García Torres López Villegas Fernández

Urrutia nombreCli

Relación: Clientes Relación: Empleados

Aranda García Hayes Turner Vilchis Guerrero

Lara

Aranda García Hayes Turner Vilchis Guerrero

Lara

nombreEmp(Empleados) nombreCli(Clientes) nombreEmp(Empleados) nombreCli(Clientes)

nombreEmp dniEmp teléfono NombreSuc

García 10 101010 Castellana

Torres 11 111111 Castellana

López 12 121212 Paseo

Villegas 13 131313 Paseo

Fernández 14 141414 Zapillo

nombreEmp García Torres López Villegas Fernández

Urrutia

Relación: Clientes Relación: Empleados

nombreCli Aranda

García Hayes Turner Vilchis Guerrero

Lara

nombreCli-Emp Aranda

Hayes Turner Vilchis Guerrero

Lara nombreEmp(Empleados)

nombreCli(Clientes) nombreCli(Clientes) nombreEmp(Empleados)

nombreEmp dniEmp teléfono NombreSuc

García 10 101010 Castellana

Torres 11 111111 Castellana

López 12 121212 Paseo

Villegas 13 131313 Paseo

Fernández 14 141414 Zapillo

(14)

— Intersección ( )

Incluye tuplas que están en todas las relaciones R S contiene las tuplas que están en R y en S simultá- neamente.

Figura 10. Ejemplo de Intersección

2.2. Cálculo relacional

La denominación “cálculo relacional” toma su nombre del cálculo de predicados. Hay dos tipos de cálculo relacional:

— Orientado a tuplas

— Orientado a dominios

Basado en la lógica de primer orden, el cálculo de predicados es una función que puede evaluarse como verdadera o falsa. Sucede que cuando los argumentos son sustituidos por valores, la función lleva a una expresión denominada proposición, que puede ser verdadera o falsa. Por ejemplo, las frases “Luis es un chef de un restaurante” y “Alondra Ruiz es líder de Carlos Beltrán” son proposiciones, pues se puede determinar si son verdaderas o falsas. En el primer caso, la función “es un chef de un restaurante” tiene un argumento, Luis, y en el segundo caso, la función “es líder de” tiene dos argumentos (Alondra Ruiz y Carlos Beltrán). Si ocurre que un predicado tiene una variable, como en “x es un chef de un restaurante”, esta variable debe tener un rango asociado. Cuando la variable se sustituye por alguno de los valores de su rango, la proposición puede ser cierta y para otros valores puede ser falsa. Por ejemplo, si el rango de x es el conjunto de todas las personas y se reemplaza x por Luis, la proposición “Luis es un chef de un restaurante” es cierta. Pero si se reemplaza x por el nombre de una persona que no es chef del restaurante, la proposición es falsa.

nombreEmp García

Torres López Villegas Fernández

Urrutia Relación: Clientes

Relación: Empleados nombreCli

Aranda

García García

Hayes Turner Vilchis Guerrero

Lara

nombreCli-Emp nombreEmp (Empleados)

nombreCli(Clientes) nombreCli(Clientes) nombreEmp(Empleados)

nombreEmp dniEmp teléfono NombreSuc

García 10 101010 Castellana

Torres 11 111111 Castellana

López 12 121212 Paseo

Villegas 13 131313 Paseo

Fernández 14 141414 Zapillo

(15)

Si F es un predicado, la siguiente expresión devuelve el conjunto de todos los valores de x para los que F es cierto:

x WHERE F(x)

Los predicados se pueden conectar mediante AND, OR y NOT para formar predicados compuestos.

— Cálculo orientado a tuplas

De acuerdo con Marqués (2011), para el cálculo relacional orientado a tuplas, se requiere de encontrar tuplas para las que se cumple cierto predicado. El cálculo orientado a tuplas se basa en el uso de varia- bles de tipo tupla. Una variable de tipo tupla es una cuyo rango de valores son las tuplas de una relación.

Por ejemplo, para especificar el rango de la variable tupla AX sobre la relación Artículos se utiliza la siguiente expresión:

RANGE OF AX IS ARTÍCULOS

Por su parte, para expresar la consulta “obtener todas las tuplas AX para las que F(AX) es cierto”, se escribe la siguiente expresión:

AX WHERE F(AX)

donde F es una fórmula formada adecuadamente. Por ejemplo, para expresar la consulta “obtener los datos de los artículos con un precio superior a $10” se puede escribir:

RANGE OF AX IS ARTÍCULOS AX WHERE AX.precio > 10

AX.precio se refiere al valor del atributo precio para la tupla AX. Para que se muestren solamente algunos atributos, por ejemplo, codart y descrip, en lugar de todos los atributos de la relación, se deben especificar éstos en la lista de objetivos:

RANGE OF AX IS ARTÍCULOS AX.codart, AX.descrip WHERE AX.precio > 10

Hay dos cuantificadores que se utilizan en las fórmulas bien formadas para indicar a cuántas instancias se aplica el predicado. El cuantificador existencial Ǝ (existe) se utiliza en las fórmulas bien formadas que deben ser ciertas para al menos una instancia

RANGE OF CX IS CLIENTES Ǝ CX (CX.codcli = FX.codcli AND CX.codpostal = 12953)

Esta fórmula indica que “existe un cliente que tiene el mismo código que el código de cliente de la tupla que ahora se encuentra en la variable de FACTURAS, FX, y cuyo código postal es 12953”.

(16)

El cuantificador universal (para todo) se aplica en las fórmulas que deben ser ciertas para todas las instancias.

RANGE OF VX IS VENDEDORES VX (VX.codpue= 37758)

Esta fórmula dice que “para todas las tuplas de Vendedores, la población no es la del código 32358”. Así se utilizan las reglas de las operaciones lógicas, esta fórmula se puede escribir también del siguiente modo:

NOT ƎPX (VX.codpue = 32358)

La proposición indica que “no hay ningún vendedor cuya población sea la del código 32358”.

Las variables tupla que no están cuantificadas por o Ǝ se denominan variables libres. Si están cuantificadas, se denominan variables ligadas (Marqués, 2011). En el cálculo relacional, al igual que cualquier lenguaje, tiene una sintaxis que permite construir expresiones válidas.

Para que una expresión no sea ambigua y tenga sentido, debe seguir esta sintaxis:

Si P es un predicado con n argumentos y t1 , t2,..., tn son constantes o variables, entonces P(t1, t2,..., tn) es una fórmula bien formada n-aria.

Si t1 y t2 son constantes o variables del mismo dominio y θ es un operador de comparación (<, ≤, >, ≥, =,

≠), entonces t1θt2 es una fórmula bien formada.

Si P1 y P2 son fórmulas bien formadas, también lo son su conjunción P1ANDP2, su disyunción P1OR P2 y la negación NOT P1. Además, si P es una fórmula bien formada que tiene una variable libre X, entonces ƎX(P ) y X(P ) también son fórmulas bien formadas.

— Cálculo orientado a dominios

En el cálculo relacional orientado a dominios, las variables toman sus valores en dominios, en lugar de tomar valores de tuplas de relaciones. Otra diferencia con el cálculo orientado a tuplas es que en el cálculo orientado a dominios hay un tipo de comparación adicional, a la que se denomina ser miembro de. Esta condición tiene la forma:

R(a1:v1, a2:v2, ..., an:vn)

donde los ai son atributos de la relación R y los vi son variables dominio o constantes. La condición se evalúa como verdadero si existe alguna tupla en R que tiene los valores especificados en los atributos especificados. Por ejemplo, la siguiente condición:

VENDEDORES(codpostal:12553, codjefe:5)

(17)

será cierta si hay alguna tupla en Vendedores que tenga en codpostal el valor actual de la variable dominio cpx y que tenga en codjefe el valor actual de la variable dominio cjx.

2.3. Modelo entidad-relación - E/R

El objetivo de este modelo conceptual es desarrollar una representación de los requerimientos de información del mundo/empresa de la realidad que se está modelando. Este modelo se desarrolló para facilitar el diseño de una base de datos. El modelo entidad-relación (modelo E-R) fue presentado por Peter Chen en 1976.

Los símbolos utilizados serán los tradicionales, así como los usados en el Lenguaje de Modelación Unificado (UML), el cual es muy utilizado por los programadores orientados a objetos.

Los elementos clave del modelo E-R son:

— Entidades

— Atributos

— Identificadores

— Relaciones

2.4. Diagramas entidad-relación

El diagrama entidad-relación (E-R) es una herramienta utilizada para el modelado de datos que permite representar visualmente cualquier abstracción y percepción de las entidades relevantes de una base de datos, así como sus interrelaciones y propiedades.

— Entidad

Una entidad es la representación de un objeto o concepto del mundo real distinguido entre otros objetos.

Es algo que se puede identificar en el medio ambiente; en el diagrama, una entidad se representa mediante un rectángulo, como podrás observar en la Figura 11.

Figura 11. Entidad CLIENTE

CLIENTE

(18)

De acuerdo con Kroenke (2003), hay diferentes tipos de entidades:

— Entidad fuerte: es aquella que se identifica por sí misma y no requiere de otra para existir; un ejemplo de esto es: alumno, cliente, auto.

— Entidad débil: es aquella que sí que necesita de otra entidad para existir. Esta entidad debe participar en una relación que ayude a identificarla, por lo tanto, dependen de una entidad fuerte.

En la Figura 12, la entidad Factura no depende de la existencia de la línea de factura, pero la línea de factura depende de la existencia de una factura, por lo tanto es débil.

Figura 12. Ejemplo de relación entre entidades fuerte y débil

Clase de entidad e instancia de entidad:

Es importante comprender las diferencias entre una clase de entidad y una instancia de entidad debido a que estos elementos permiten diferenciar los elementos instanciados que pueden conformar una entidad en general.

Siguiendo a Kroenke (2003), las diferencias entre clase de identidad e instancia de entidad son las si- guientes:

— Conjunto o clase de entidades es una colección o conjunto de entidades similares o del mismo tipo y se describe mediante la estructura o formato de las entidades en esa clase, por ejemplo:

— Todos los empleados

— Todos los clientes

— Instancia de entidad es la representación de una entidad en particular y se describe mediante los valores de los atributos de esta, por ejemplo: CLIENTE 1254

Todas las entidades de un conjunto tienen los mismos atributos. Cada conjunto de entidades tiene un identificador, pero ¿qué es un atributo?

— Atributo (propiedades): representa alguna propiedad o característica de interés en una entidad que toman valor en una instancia particular. En el diagrama, un atributo se representa mediante una

Entidad débil Entidad fuerte

Contiene

Facturas Línea

Facturas

(19)

Figura 13. Ejemplo de atributo

Por su parte, la Figura 14 muestra los distintos tipos de atributos:

Figura 14. Tipos de atributos

Nombre_de_cliente Nombre del cliente: Felipe Jiménez Pérez

Número de cliente: 14576

Teléfono del cliente: 55-50-00-00 RFC: JIPF680411

••

••

CLIENTE (CLIENT) (compuesto)

Pueden ser divididos en pequeñas partes, las cuales representan atributos básicos con existencia independiente. Por ejemplo, el atributo Dirección puede ser dividido en Domicilio, Ciudad, Estado.

Los valores de dos o más atributos están relacionados. Ejemplo: los atributos Edad y Fecha de Nacimiento de una persona.

Tipos de atributos

Simples o atómicos

Compuestos

Derivado

Tienen un valor simple. Están conformados de una parte pequeña, la cual representa un elemento básico con existencia independiente. Por ejemplo:

Número de empleado, Calificación de un alumno.

(20)

A continuación se muestra la simbología de atributos en el diagrama.

Figura 15. Simbología de atributos

— Dominio de los atributos

Cada uno de los atributos simples tiene asociado un conjunto de valores “legales” posibles, los cuales conforman conjuntos de datos. El dominio restringe los valores del atributo. A continuación, se presenta un ejemplo:

Mayor de edad: Dominio [18, 110]

— Identificador

Es un atributo de una entidad que nombra o identifica de forma única cada una de las instancias de esa entidad, por ejemplo, para el caso de la entidad Empleado, algunos de sus posibles identificadores po- drían ser:

EMPLEADO (EMP)

— Número de seguro social: 1456789

— Número de empleado: 14576

— RFC: JAPC681124

Subatributo

Atributo

simple o atómicos

Atributo compuesto

Atributo derivado

Subatributo Subatributo

(21)

— Identificador compuesto

Se trata de un identificador de una instancia, el cual puede constar de uno o más atributos de ésta, por ejemplo:

RFC Letras del apellido y nombre + fecha de nacimiento

Figura 16. Identificadores

— Relación

Describe la interacción entre dos o más entidades. Se representa gráficamente por un rombo con un verbo en su interior, por ejemplo:

CLIENTE (CLIENT) TIENE FACTURA (FACT) VENDEDOR (VEND) TIENE UN CLIENTE (CLIENT)

— Participación: dependencia o asociación entre una o más entidades.

— Grado del conjunto de relaciones: cantidad de entidades que participan en una relación.

Número de Cliente

identificadores

Los

El grado de una relación es el número de atributos que contiene.

se representan en negritas y subrayando el correspondiente nombre de atributo.

(22)

Figura 17. Ejemplo de participación y grado de relación

En el diagrama E-R tanto la entidad Cliente como la entidad Producto participan en una relación; al tratarse de dos entidades el grado de la relación es dos, por lo que se trata de una relación binaria.

— Cardinalidad

De acuerdo con Marqués (2011), la cardinalidad es el grado de participación de las entidades en una relación; se trata de un tipo de restricción que se utiliza para comprobar y mantener la calidad de los datos.

La cardinalidad mínima indica si la participación de la entidad en la relación es opcional, por lo general se señala con un 0 o si es obligatoria, con 1. La cardinalidad máxima indica si cada ocurrencia de la entidad sólo puede relacionarse con una ocurrencia de la entidad del otro lado de la relación y se señala con 1 o si puede relacionarse con varias a la vez, se hace con n.

Para calcular la cardinalidad, se propone la realización de las siguientes preguntas:

¿Cuántos elementos de una entidad participarán en la relación con un elemento concreto de la segunda entidad?

¿Cuántos elementos de la segunda entidad participarán en la relación con un elemento concreto de la primera entidad?

Cliente 1 N Producto

Nombre Valor Referencia

Descripción Fecha

RFC

Dirección Precio

Compra

Total de Compra

(23)

Figura 18. Diagrama que representa el grado de cardinalidad entre relaciones

— Relación uno a uno (1:1)

Existe una relación uno a uno cuando una instancia de una entidad sólo puede estar relacionada con una única instancia de otra entidad. Es decir, si una instancia de una entidad A se relaciona únicamente con una instancia de una entidad B y viceversa. Ejemplo: relación nombre usuario número de teléfono celular.

Figura 19. Ejemplo de relación uno a uno (1:1)

— Relación uno a muchos (1:N)

Esta relación se da cuando una instancia de una entidad puede estar relacionada con más de una ins- tancia de otra entidad. Es decir, una instancia de una entidad A se relaciona con muchas instancias de una entidad B, pero una instancia de la entidad B se relaciona con una única instancia en la entidad A.

Cero o uno: Paciente-habitación Uno o muchos: Profesor-materia Uno: Alumno matrícula

Cero o muchos: Aula-clases Muchos: Profesor-alumno

Relación “uno a uno”

Nombre 1 Nombre 2 Nombre 3 Nombre 4

Teléfono 1

Teléfono 2

Teléfono 3

Teléfono 4

(24)

Figura 20. Ejemplo de relación uno a muchos (1:N)

Un usuario puede tener muchos números de celular, pero cada número de celular está asociado a un sólo usuario.

— Relación muchos a muchos (M:N)

Esta relación se presenta cuando muchas instancias de una entidad se relacionan con varias instancias de otra entidad y viceversa. Es decir, muchas instancias en la entidad A se relacionan con muchas ins- tancias en la entidad B, y a su vez muchas instancias en la entidad B se pueden relacionar con muchas instancias en la entidad A.

Figura 21. Ejemplo de relación muchos a muchos (M:N)

En el caso de una línea conmutada, varios usuarios comparten el mismo número, y a su vez varios números

Relación “uno a varios”

Nombre 1

Nombre 2

Teléfono 1 Teléfono 2 Teléfono 3 Teléfono 4 Teléfono 5 Teléfono 6

Relación “varios con varios”

Nombre 1 Nombre 2 Nombre 3 Nombre 4

Teléfono 1

Teléfono 2

Teléfono 3

Teléfono 4

(25)

Kroenke, D. (2003). Procesamiento de bases de datos. Fundamentos, diseño e implementación. Recu- perado de

Marqués, M. (2011). Bases de datos. España: Universitat Jaume.

Martos, F., Robledo, T., Calvo, J. y Desongles J. (2004). Grupo D. Auxiliares Administrativos de Adminis- tración General. Recuperado de

Sánchez, J. (2016). Apuntes completos. Sistemas Gestores de Bases de Datos. Recuparado de

Referencias

Documento similar

Si para construir y evaluar una FBF necesitamos una interpretación y un LPO, para todo esquema de base de datos relacional (BDR) y para cada estado de base de datos

RIBEIRO, y respecto al comercio exterior su Consejo Regulador nos ha facilitado los datos del 85% de las bodegas inscritas que son las que han suministrado la información al

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

Para comprobar tanto el middleware como el controlador de acceso a datos de un nivel de red y un cliente de base de datos dados, utilice la función connectivity.. Figura 2-7:

De non ser así, as facturas non poderán tramitarse para o pago, e a USC, a través do responsable de asuntos económicos do centro da USC que solicitou os seus servicios Rexeitará

T02.019- Fecha y usuario del pedido, código, nombre, marca, pvp y precio de venta de los artículos solicitados en el pedido número 1 que sean televisores... select cod,nombre,'tiene

Estos planes de recolo- cación deben garantizar a las personas despedi- das un servicio continuado durante un periodo mínimo de seis meses que incluya medidas de formación

El principal objetivo del desarrollo de este proyecto es el de familiarizarnos con las bases de datos de tipo NoSQL, concretamente con MongoDB, en la cual nos centraremos