Articulo de referencia

Modelo relacional

El modelo relacional ( MR ) es un enfoque para gestionar datos utilizando una estructura y un lenguaje consistentes con la lógica de predicados de primer orden , descrito por pr...

El modelo relacional ( MR ) es un enfoque para gestionar datos utilizando una estructura y un lenguaje consistentes con la lógica de predicados de primer orden , descrito por primera vez en 1969 por el científico informático inglés Edgar F. Codd , [ 1 ] [ 2 ] donde todos los datos se representan en términos de tuplas , agrupadas en relaciones . Una base de datos organizada en términos del modelo relacional es una base de datos relacional .

El objetivo del modelo relacional es proporcionar un método declarativo para especificar datos y consultas: los usuarios indican directamente qué información contiene la base de datos y qué información desean obtener de ella, y dejan que el software del sistema de gestión de bases de datos se encargue de describir las estructuras de datos para almacenar la información y los procedimientos de recuperación para responder a las consultas.

La mayoría de las bases de datos relacionales utilizan el lenguaje de definición de datos y consulta SQL ; estos sistemas implementan lo que puede considerarse una aproximación de ingeniería al modelo relacional. En un esquema de base de datos SQL, una tabla se corresponde con una variable de predicado; el contenido de una tabla con una relación; las restricciones de clave, otras restricciones y las consultas SQL se corresponden con predicados. Sin embargo, las bases de datos SQL se desvían del modelo relacional en muchos detalles , y Codd argumentó enérgicamente en contra de las desviaciones que comprometen los principios originales. [ 3 ]

Historia

El modelo relacional fue desarrollado por Edgar F. Codd como un modelo general de datos, y posteriormente promovido por Chris Date y Hugh Darwen, entre otros. En su obra de 1995, El Tercer Manifiesto , Date y Darwen intentan demostrar cómo el modelo relacional puede incorporar ciertas características "deseadas" de la programación orientada a objetos . [ 4 ]

Extensiones

Algunos años después de la publicación de su modelo de 1970, Codd propuso una versión con lógica de tres valores (Verdadero, Falso, Ausente/ Nulo ) para tratar la información faltante, y en su libro The Relational Model for Database Management Version 2 (1990) fue un paso más allá con una versión de lógica de cuatro valores (Verdadero, Falso, Ausente pero Aplicable, Ausente pero Inaplicable). [ 5 ]

Conceptualización

Conceptos básicos

Una relación con 5 atributos (su grado) y 4 tuplas (su cardinalidad) puede visualizarse como una tabla con 5 columnas y 4 filas. Sin embargo, a diferencia de las filas y columnas de una tabla, los atributos y las tuplas de una relación no tienen un orden específico.

Una relación consta de un encabezado y un cuerpo . El encabezado define un conjunto de atributos , cada uno con un nombre y un tipo de dato (a veces llamado dominio ). El número de atributos en este conjunto es el grado o aridad de la relación . El cuerpo es un conjunto de tuplas . Una tupla es una colección de n valores , donde n es el grado de la relación, y cada valor en la tupla corresponde a un atributo único. [ 6 ] El número de tuplas en este conjunto es la cardinalidad de la relación . [ 7 ] : 17–22

Las relaciones se representan mediante variables relacionales o relvars , que pueden reasignarse. [ 7 ] : 22–24 Una base de datos es una colección de relvars. [ 7 ] : 112–113

En este modelo, las bases de datos siguen el Principio de Información : En cualquier momento dado, toda la información en la base de datos está representada únicamente por valores dentro de tuplas, correspondientes a atributos, en relaciones identificadas por relvars. [ 7 ] : 111

Restricciones

Una base de datos puede definir expresiones booleanas arbitrarias como restricciones . Si todas las restricciones se evalúan como verdaderas , la base de datos es consistente ; de ​​lo contrario, es inconsistente . Si un cambio en las restricciones de una base de datos la dejara en un estado inconsistente, ese cambio es ilegal y no debe tener éxito. [ 7 ] : 91

En general, las restricciones se expresan mediante operadores de comparación relacional, de los cuales solo uno, "es subconjunto de" (⊆), es teóricamente suficiente. [ 8 ]

Dos casos especiales de restricciones se expresan como claves y claves foráneas :

Llaves

Una clave candidata , o simplemente una clave , es el subconjunto más pequeño de atributos que garantiza la diferenciación única de cada tupla en una relación. Dado que cada tupla en una relación debe ser única, toda relación necesariamente tiene una clave, que puede ser su conjunto completo de atributos. Una relación puede tener múltiples claves, ya que puede haber múltiples maneras de diferenciar de forma única cada tupla. [ 7 ] : 31–33

An attribute may be unique across tuples without being a key. For example, a relation describing a company's employees may have two attributes: ID and Name. Even if no employees currently share a name, if it is possible to eventually hire a new employee with the same name as a current employee, the attribute subset {Name} is not a key. Conversely, if the subset {ID} is a key, this means not only that no employees currently share an ID, but that no employees will ever share an ID.[7]:31–33

Foreign keys

A foreign key is a subset of attributes A in a relation R1 that corresponds with a key of another relation R2, with the property that the projection of R1 on A is a subset of the projection of R2 on A. In other words, if a tuple in R1 contains values for a foreign key, there must be a corresponding tuple in R2 containing the same values for the corresponding key.[7]:34

Relational operations

Users (or programs) request data from a relational database by sending it a query. In response to a query, the database returns a result set.[2]

Often, data from multiple tables are combined into one, by doing a join. Conceptually, this is done by taking all possible combinations of rows (the Cartesian product), and then filtering out everything except the answer.[2]

There are a number of relational operations in addition to join. These include project (the process of eliminating some of the columns), restrict (the process of eliminating some of the rows), union (a way of combining two tables with similar structures), difference (that lists the rows in one table that are not found in the other), intersect (that lists the rows found in both tables), and product (mentioned above, which combines each row of one table with each row of the other). Depending on which other sources you consult, there are a number of other operators – many of which can be defined in terms of those listed above. These include semi-join, outer operators such as outer join and outer union, and various forms of division. Then there are operators to rename columns, and summarizing or aggregating operators, and if you permit relation values as attributes (relation-valued attribute), then operators such as group and ungroup.[2]

La flexibilidad de las bases de datos relacionales permite a los programadores escribir consultas que no fueron previstas por los diseñadores. Como resultado, las bases de datos relacionales pueden ser utilizadas por múltiples aplicaciones de maneras que los diseñadores originales no anticiparon, lo cual es especialmente importante para bases de datos que podrían usarse durante mucho tiempo (quizás varias décadas). [ 2 ] Esto ha hecho que la idea e implementación de bases de datos relacionales sean muy populares en las empresas. [ 9 ]

Normalización de la base de datos

Las relaciones se clasifican según los tipos de anomalías a las que son vulnerables. Una base de datos en primera forma normal es vulnerable a todo tipo de anomalías, mientras que una base de datos en forma normal de dominio/clave no presenta anomalías de modificación. Las formas normales son jerárquicas. Es decir, el nivel más bajo es la primera forma normal, y la base de datos no puede cumplir los requisitos de las formas normales de nivel superior sin antes haber cumplido todos los requisitos de las formas normales inferiores. [ 10 ]

Interpretación lógica

El modelo relacional es un sistema formal . Los atributos de una relación definen un conjunto de proposiciones lógicas . Cada proposición puede expresarse como una tupla. El cuerpo de una relación es un subconjunto de estas tuplas, que representa qué proposiciones son verdaderas. Las restricciones representan proposiciones adicionales que también deben ser verdaderas. El álgebra relacional es un conjunto de reglas lógicas que permiten inferir válidamente conclusiones a partir de estas proposiciones. [ 7 ] : 95–101

La definición de tupla permite una única tupla vacía sin valores, que corresponde al conjunto vacío de atributos. Si una relación tiene un grado de 0 (es decir, su encabezado no contiene atributos), puede tener una cardinalidad de 0 (un cuerpo que no contiene tuplas) o una cardinalidad de 1 (un cuerpo que contiene la única tupla vacía). Estas relaciones representan valores de verdad booleanos . La relación con grado 0 y cardinalidad 0 es Falsa , mientras que la relación con grado 0 y cardinalidad 1 es Verdadera . [ 7 ] : 221–223

Ejemplo

Si una relación de Empleados contiene los atributos {norteametromi,ID}{\displaystyle \{Name,ID\}} , entonces la tupla{Alidomi,1}{\displaystyle \{Alice,1\}} representa la proposición: "Existe una empleada llamada Alice con ID 1 ". Esta proposición puede ser verdadera o falsa. Si esta tupla existe en el cuerpo de la relación, la proposición es verdadera (existe dicha empleada). Si esta tupla no está en el cuerpo de la relación, la proposición es falsa (no existe dicha empleada). [ 7 ] : 96–97

Además, si{ID}{\displaystyle \{ID\}}Si es una clave, entonces una relación que contiene las tuplas .{Alidomi,1}{\displaystyle \{Alice,1\}}y{Bob,1}{\displaystyle \{Bob,1\}}Esto representaría la siguiente contradicción :

  1. Existe una empleada con el nombre Alice y la ID 1 .
  2. Existe un empleado con el nombre Bob y la identificación 1 .
  3. No existen varios empleados con el mismo ID.

Según el principio de explosión , esta contradicción permitiría al sistema demostrar que cualquier proposición arbitraria es verdadera. La base de datos debe aplicar la restricción de clave para evitar esto. [ 7 ] : 104

Ejemplos

Base de datos

Un ejemplo idealizado y muy simple de la descripción de algunas variables de relación ( relavars) y sus atributos:

  • Cliente ( ID de cliente , Nombre)
  • Pedido ( ID del pedido , ID del cliente , ID de la factura , Fecha)
  • Factura ( ID de factura , ID de cliente , ID de pedido , Estado)

En este diseño tenemos tres variables relativas: Cliente, Pedido y Factura. Los atributos en negrita y subrayados son claves candidatas . Los atributos que no están en negrita ni subrayados son claves foráneas .

Normalmente, se elige una clave candidata que se denomina clave primaria y se utiliza con preferencia sobre las demás claves candidatas, que luego se denominan claves alternativas .

Una clave candidata es un identificador único que garantiza que ninguna tupla se duplique; esto convertiría la relación en algo distinto, concretamente una bolsa , al violar la definición básica de un conjunto . Tanto las claves foráneas como las superclaves (que incluyen las claves candidatas) pueden ser compuestas, es decir, pueden estar formadas por varios atributos. A continuación se muestra una tabla que representa la relación de nuestro ejemplo Cliente relvar; una relación puede considerarse como un valor que se puede atribuir a un relvar.

Relación con el cliente

If we attempted to insert a new customer with the ID 123, this would violate the design of the relvar since Customer ID is a primary key and we already have a customer 123. The DBMS must reject a transaction such as this that would render the database inconsistent by a violation of an integrity constraint. However, it is possible to insert another customer named Alice, as long as this new customer has a unique ID, since the Name field is not part of the primary key.

Foreign keys are integrity constraints enforcing that the value of the attribute set is drawn from a candidate key in another relation. For example, in the Order relation the attribute Customer ID is a foreign key. A join is the operation that draws on information from several relations at once. By joining relvars from the example above we could query the database for all of the Customers, Orders, and Invoices. If we only wanted the tuples for a specific customer, we would specify this using a restriction condition. If we wanted to retrieve all of the Orders for Customer 123, we could query the database to return every row in the Order table with Customer ID123 .

There is a flaw in our database design above. The Invoice relvar contains an Order ID attribute. So, each tuple in the Invoice relvar will have one Order ID, which implies that there is precisely one Order for each Invoice. But in reality an invoice can be created against many orders, or indeed for no particular order. Additionally the Order relvar contains an Invoice ID attribute, implying that each Order has a corresponding Invoice. But again this is not always true in the real world. An order is sometimes paid through several invoices, and sometimes paid without an invoice. In other words, there can be many Invoices per Order and many Orders per Invoice. This is a many-to-many relationship between Order and Invoice (also called a non-specific relationship). To represent this relationship in the database a new relvar should be introduced whose role is to specify the correspondence between Orders and Invoices:

OrderInvoice (Order ID, Invoice ID)

Ahora bien, la relación Order tiene una relación de uno a muchos con la tabla OrderInvoice, al igual que la relación Invoice. Si queremos recuperar todas las facturas de un pedido en particular, podemos consultar todos los pedidos donde el ID de pedido en la relación Order sea igual al ID de pedido en OrderInvoice, y donde el ID de factura en OrderInvoice sea igual al ID de factura en Invoice.

Aplicación a bases de datos relacionales

En una base de datos relacional, un tipo de dato puede ser el conjunto de números enteros, el conjunto de cadenas de caracteres, el conjunto de fechas, etc. El modelo relacional no impone qué tipos de datos deben ser compatibles.

Los atributos se representan comúnmente como columnas , las tuplas como filas y las relaciones como tablas . Una tabla se define mediante una lista de columnas, cada una de las cuales especifica un nombre de columna único y el tipo de valores permitidos para esa columna. El valor de un atributo es la entrada en una columna y fila específicas.

Una variable de relación de base de datos se conoce comúnmente como tabla base . El encabezado de su valor asignado en cualquier momento es el especificado en la declaración de la tabla, y su cuerpo es el que le asignó más recientemente un operador de actualización (normalmente, INSERT, UPDATE o DELETE). El encabezado y el cuerpo de la tabla resultante de la evaluación de una consulta vienen determinados por las definiciones de los operadores utilizados en dicha consulta.

SQL y el modelo relacional

SQL, inicialmente promovido como el lenguaje estándar para bases de datos relacionales , se desvía del modelo relacional en varios aspectos. El estándar ISO SQL actual no menciona el modelo relacional ni utiliza términos o conceptos relacionales.

Según el modelo relacional, los atributos y las tuplas de una relación son conjuntos matemáticos , lo que significa que no tienen un orden específico y son únicos. En una tabla SQL, ni las filas ni las columnas son conjuntos propiamente dichos. Una tabla puede contener filas y columnas duplicadas, y las columnas de una tabla tienen un orden explícito. SQL utiliza un valor nulo para indicar datos faltantes, lo cual no tiene equivalente en el modelo relacional. Dado que una fila puede representar información desconocida, SQL no se adhiere al principio de información del modelo relacional . [ 7 ] : 153–155, 162

Formulación basada en la teoría de conjuntos

Las nociones básicas en el modelo relacional son los nombres de las relaciones y los nombres de los atributos . Los representaremos como cadenas como "Persona" y "nombre" y normalmente utilizaremos las variables.r,s,t,{\displaystyle r,s,t,\ldots }ya,b,do{\displaystyle a,b,c}para abarcarlos. Otra noción básica es el conjunto de valores atómicos que contiene valores como números y cadenas.

Nuestra primera definición se refiere a la noción de tupla , que formaliza la noción de fila o registro en una tabla:

Tupla
Una tupla es una función parcial que asigna valores atómicos a los nombres de los atributos.
Encabezamiento
Un encabezado es un conjunto finito de nombres de atributos.
Proyección
La proyección de una tuplat{\displaystyle t}sobre un conjunto finito de atributosA{\displaystyle A}est[A]={(a,v):(a,v)t,aA}{\displaystyle t[A]=\{(a,v):(a,v)\in t,a\in A\}}.

La siguiente definición define la relación que formaliza el contenido de una tabla tal como se define en el modelo relacional.

Relación
Una relación es una tupla(H,B){\displaystyle (H,B)}conH{\displaystyle H}, el encabezado yB{\displaystyle B}, el cuerpo, un conjunto de tuplas que tienen todas el dominioH{\displaystyle H}.

Dicha relación se corresponde estrechamente con lo que se suele denominar la extensión de un predicado en lógica de primer orden, con la salvedad de que aquí identificamos los lugares del predicado con nombres de atributos. Generalmente, en el modelo relacional, se dice que un esquema de base de datos consta de un conjunto de nombres de relaciones, los encabezados asociados a estos nombres y las restricciones que deben cumplirse para cada instancia del esquema.

Relación universo
Un universo de relacionesU{\displaystyle U}sobre un encabezadoH{\displaystyle H}es un conjunto no vacío de relaciones con encabezadoH{\displaystyle H}.
Esquema de relación
Un esquema de relación(H,do){\displaystyle (H,C)}consta de un encabezadoH{\displaystyle H}y un predicadodo(R){\displaystyle C(R)}que se define para todas las relacionesR{\displaystyle R}con encabezadoH{\displaystyle H}Una relación satisface un esquema de relación.(H,do){\displaystyle (H,C)}si tiene encabezadoH{\displaystyle H}y satisfacedo{\displaystyle C}.

Restricciones clave y dependencias funcionales

Uno de los tipos más simples e importantes de restricciones relacionales es la restricción de clave . Esta nos indica que, en cada instancia de un esquema relacional determinado, las tuplas pueden identificarse por sus valores para ciertos atributos.

Superclave

Una superclave es un conjunto de encabezados de columna cuyos valores concatenados son únicos en todas las filas. Formalmente:

Una superclave se escribe como un conjunto finito de nombres de atributos.
Una superclaveK{\displaystyle K}se mantiene en una relación(H,B){\displaystyle (H,B)}si:
  • KH{\displaystyle K\subseteq H}y
  • No existen dos tuplas distintas.t1,t2B{\displaystyle t_{1},t_{2}\in B}de tal manera quet1[K]=t2[K]{\displaystyle t_{1}[K]=t_{2}[K]}.
Una superclave se encuentra en un universo de relaciones.U{\displaystyle U}si se cumple en todas las relaciones enU{\displaystyle U}.
Teorema: Una superclaveK{\displaystyle K}se mantiene en una relación universoU{\displaystyle U}encimaH{\displaystyle H}si y solo siKH{\displaystyle K\subseteq H}yKH{\displaystyle K\rightarrow H}se sostiene enU{\displaystyle U}.
Clave del candidato

Una clave candidata es una superclave que no se puede subdividir para formar otra superclave.

Una superclaveK{\displaystyle K}se mantiene como clave candidata para un universo de relacionesU{\displaystyle U}si se mantiene como una superclave paraU{\displaystyle U}y no existe un subconjunto adecuado deK{\displaystyle K}que también sirve como superclave paraU{\displaystyle U}.
Dependencia funcional

La dependencia funcional es la propiedad que permite que un valor en una tupla se derive de otro valor en esa misma tupla.

Una dependencia funcional (FD, por sus siglas en inglés) se escribe comoincógnitaY{\displaystyle X\rightarrow Y}paraincógnita,Y{\displaystyle X,Y}conjuntos finitos de nombres de atributos.
Una dependencia funcionalincógnitaY{\displaystyle X\rightarrow Y}se mantiene en una relación(H,B){\displaystyle (H,B)}si:
  • incógnita,YH{\displaystyle X,Y\subseteq H}y
  • {\displaystyle \forall }tuplast1,t2B{\displaystyle t_{1},t_{2}\in B},t1[incógnita]=t2[incógnita]  t1[Y]=t2[Y]{\displaystyle t_{1}[X]=t_{2}[X]~\Rightarrow ~t_{1}[Y]=t_{2}[Y]}
Una dependencia funcionalincógnitaY{\displaystyle X\rightarrow Y}se mantiene en una relación universoU{\displaystyle U}si se cumple en todas las relaciones enU{\displaystyle U}.
Dependencia funcional trivial
Una dependencia funcional es trivial bajo un encabezadoH{\displaystyle H}si se cumple en todos los universos de relación sobreH{\displaystyle H}.
Teorema: Un FDincógnitaY{\displaystyle X\rightarrow Y}es trivial bajo un encabezadoH{\displaystyle H}si y solo siYincógnitaH{\displaystyle Y\subseteq X\subseteq H}.
Cierre
Axiomas de Armstrong : El cierre de un conjunto de dependencias funcionales.S{\displaystyle S}bajo un encabezadoH{\displaystyle H}, escrito comoS+{\displaystyle S^{+}}, es el superconjunto más pequeño deS{\displaystyle S}de tal manera que:
  • YincógnitaH  incógnitaYS+{\displaystyle Y\subseteq X\subseteq H~\Rightarrow ~X\rightarrow Y\in S^{+}}(reflexividad)
  • incógnitaYS+YZS+  incógnitaZS+{\displaystyle X\rightarrow Y\in S^{+}\land Y\rightarrow Z\in S^{+}~\Rightarrow ~X\rightarrow Z\in S^{+}}(transitividad) y
  • incógnitaYS+ZH  (incógnitaZ)(YZ)S+{\displaystyle X\rightarrow Y\in S^{+}\land Z\subseteq H~\Rightarrow ~(X\cup Z)\rightarrow (Y\cup Z)\in S^{+}}(aumento)
Teorema: Los axiomas de Armstrong son sólidos y completos; dado un encabezadoH{\displaystyle H}y un conjuntoS{\displaystyle S}de FD que solo contienen subconjuntos deH{\displaystyle H},incógnitaYS+{\displaystyle X\rightarrow Y\in S^{+}}si y solo siincógnitaY{\displaystyle X\rightarrow Y}se mantiene en todos los universos de relación sobreH{\displaystyle H}en el que todos los FD enS{\displaystyle S}mantener. [ 11 ]
Terminación
La finalización de un conjunto finito de atributosincógnita{\displaystyle X}bajo un conjunto finito de FDS{\displaystyle S}, escrito comoincógnita+{\displaystyle X^{+}}, es el superconjunto más pequeño deincógnita{\displaystyle X}de tal manera que:
  • YZSYincógnita+  Zincógnita+{\displaystyle Y\rightarrow Z\in S\land Y\subseteq X^{+}~\Rightarrow ~Z\subseteq X^{+}}
La completitud de un conjunto de atributos puede utilizarse para calcular si una determinada dependencia se encuentra en el cierre de un conjunto de dependencias funcionales.
Teorema: Dado un conjuntoS{\displaystyle S}de FD,incógnitaYS+{\displaystyle X\rightarrow Y\in S^{+}}si y solo siYincógnita+{\displaystyle Y\subseteq X^{+}}.
Cubierta irreductible
Una cubierta irreducible de un conjuntoS{\displaystyle S}de FD es un conjuntoT{\displaystyle T}de FD tales que:
  • S+=T+{\displaystyle S^{+}=T^{+}}
  • no existeUT{\displaystyle U\subset T}de tal manera queS+=U+{\displaystyle S^{+}=U^{+}}
  • incógnitaYT Y{\displaystyle X\rightarrow Y\in T~\Rightarrow Y}es un conjunto unitario y
  • incógnitaYTZincógnita  ZYS+{\displaystyle X\rightarrow Y\in T\land Z\subset X~\Rightarrow ~Z\rightarrow Y\notin S^{+}}.

Algoritmo para derivar claves candidatas a partir de dependencias funcionales.

El algoritmo deriva claves candidatas a partir de dependencias funcionales. Entrada : un conjunto S de FD que contienen solo subconjuntos de un encabezado H. Salida: el conjunto C de superclaves que se mantienen como claves candidatas. todos los universos de relaciones sobre H en los que se cumplen todas las FD en SC := ∅ // claves candidatas encontradas Q := { H } // superclaves que contienen claves candidatas mientras Q <> ∅ hacer sea K algún elemento de Q Q := Q  – { K } minimal := verdadero para cada X->Y en S hacer K' := ( K Y ) ∪ X // derivar nueva superclave si K'K entonces minimal := falso Q := Q ∪ { K' } fin si fin para si minimal y no hay un subconjunto de K en C entonces eliminar todos los superconjuntos de K de C C := C ∪ { K } fin si fin mientras

Alternativas

Otros modelos incluyen el modelo jerárquico y el modelo de red . Algunos sistemas que utilizan estas arquitecturas más antiguas todavía se usan hoy en día en centros de datos con grandes volúmenes de datos, o donde los sistemas existentes son tan complejos y abstractos que sería prohibitivo en términos de costos migrar a sistemas que emplean el modelo relacional. También cabe destacar las bases de datos orientadas a objetos más recientes [ 12 ] y Datalog [ 13 ] .

Datalog es un lenguaje de definición de bases de datos que combina una visión relacional de los datos, como en el modelo relacional, con una visión lógica, como en la programación lógica . Mientras que las bases de datos relacionales utilizan un cálculo relacional o álgebra relacional, con operaciones relacionales como unión , intersección , diferencia de conjuntos y producto cartesiano para especificar consultas, Datalog utiliza conectores lógicos, como if , or , and y not, para definir relaciones como parte de la propia base de datos.

A diferencia del modelo relacional, que no puede expresar consultas recursivas sin introducir un operador de punto fijo mínimo, [ 14 ] las relaciones recursivas se pueden definir en Datalog, sin introducir ningún conector lógico nuevo ni operadores.

Véase también

Referencias

  1. Codd, EF (1969), Derivabilidad, redundancia y consistencia de las relaciones almacenadas en grandes bancos de datos , Informe de investigación, IBM.
  2. 1 2 3 4 5 Codd, EF (1970). "Un modelo relacional de datos para grandes bancos de datos compartidos" . Communications of the ACM . Classics. 13 (6): 377– 87. doi : 10.1145/362384.362685 . S2CID 207549016 . 
  3. Codd, E. F (1990), El modelo relacional para la gestión de bases de datos , Addison-Wesley, págs. 371–388 , ISBN  978-0-201-14192-4.
  4. "¿Tuvo el "Tercer Manifiesto" de Date y Darwen un impacto duradero?" . Computer Science Stack Exchange . Consultado el 3 de agosto de 2024 .
  5. Date, Christopher J. (2006). "18. Por qué la lógica trivalente y cuatrivalente no funciona". Date en la base de datos: Escritos 2000–2006 . Apress. págs. 329–41 . ISBN  978-1-59059-746-0.
  6. "Tupla en DBMS" . GeeksforGeeks . 12 de febrero de 2023. Consultado el 3 de agosto de 2024 .
  7. 1 2 3 4 5 6 7 8 9 10 11 12 13 Date, Chris J. (2013). Teoría relacional para profesionales de la informática: De qué se tratan realmente las bases de datos relacionales (1.ª ed.). Sebastopol, California: O'Reilly Media. ISBN  978-1-449-36943-9.
  8. "Modelo relacional | PDF | Modelo relacional | Base de datos relacional" . Scribd . Consultado el 27 de septiembre de 2025 .
  9. "Clasificación de DB-Engines" . DB-Engines . Consultado el 28 de junio de 2026 .
  10. David M. Kroenke, Procesamiento de bases de datos: Fundamentos, diseño e implementación (1997), Prentice-Hall, Inc., páginas 130–144
  11. Armstrong, William Ward (1974). Procesamiento de la información 74: Actas del Congreso IFIP 74. North-Holland. págs. 580–583 . 
  12. Atkinson, M., Dewitt, D., Maier, D., Bancilhon, F., Dittrich, K. y Zdonik, S., 1990. El manifiesto del sistema de bases de datos orientado a objetos. En Bases de datos deductivas y orientadas a objetos (págs. 223-240). North-Holland.
  13. Maier, D., Tekle, KT, Kifer, M. y Warren, DS, 2018. Datalog: conceptos, historia y perspectivas. En Programación lógica declarativa: teoría, sistemas y aplicaciones (págs. 3-100).
  14. Aho, AV y Ullman, JD, 1979, enero. Universalidad de los lenguajes de recuperación de datos. En Actas del 6.º simposio ACM SIGACT-SIGPLAN sobre principios de lenguajes de programación (págs. 110-119).

Lecturas adicionales

  • Date, Christopher J .; Darwen, Hugh (2000). Fundamentos para futuros sistemas de bases de datos: el tercer manifiesto; un estudio detallado del impacto de la teoría de tipos en el modelo relacional de datos, incluyendo un modelo integral de herencia de tipos (2.ª  ed.). Reading, MA : Addison-Wesley. ISBN 978-0-201-70928-5.
  • (2007). Introducción a los sistemas de bases de datos (8.ª  ed.). Boston: Pearson Education. ISBN 978-0-321-19784-9.
  • Childs (1968), Viabilidad de una estructura de datos basada en la teoría de conjuntos: una estructura general basada en una definición reconstituida de relación (investigación), Handle, hdl : 2027.42/4164citado en el artículo de Codd de 1970.
  • Darwen, Hugh, El Tercer Manifiesto (TTM).
  • "Modelo relacional" , C2.
  • Comparación de relaciones binarias y tuplas con respecto a la web semántica ( blog de la World Wide Web ), Sun.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Relational_model&oldid=1361474021 "