ANTECEDENTES.
Los orígenes de las BD se remontan a la antiguedad, donde ya existían bibliotecas y toda clase de registros, también recogían información sobre cosechas y censos, pero la búsqueda era lenta y poco eficaz, no existían m´quinas que pudiera remplazar este trabajo manual.
El uso de las BD se desarrolló a partir de las necesidades de almacenar grandes cantidades de información, después de la aparición de las primeras computadoras.
En los años 60, apareció la primera generación de BD y de red y las BD jerárquicas, ya que era posible guardar la información mediante estructura de datos de listas y arboles.
MODELO DE DATOS RELACIONAL
Es un grupo de herramientas conceptuales para describir los datos, sus relaciones, su semántica y sus limitaciones, de tal forma que facilite la interpretación de nuestro mundo real y su representación en forma de datos en nuestro sistema informativo.
DEFINICION
El modelo de datos relacional, organiza y representa los datos en forma de tablas o relaciones.
Una BDR es una colección de relaciones
REPRESENTACIONES
CONCEPTOS BASICOS
RELACION. Dada una serie de conjuntos R{D1,D2,...Dn}, R es una relación de esos conjuntos, si es un conjunto ordenado de n ocurrencias d1, d2, .. dn, tal que d1ЄD1, d2ЄD2, dnЄDn, siendo D1, D2, Dn dominios de R
CAMPO. Es una característica o un atributo del Modelo Entidad Relación (Campo = Atributo)
DOMINIO. Conjunto de valores a partir el cual los campos van a tomar valores, existen dos clases de dominios:
Dominios Continuos: El dominio de los números enteros, valores que tienen continuidad.
Dominios Discretos: Conjunto de valores finitos. Ejemplo: verdadero-falso, colores, etc.
TUPLA. Son ocurrencias de la relación (Tupla = Fila)
GRADO. Cantidad de campos que forman parte de la relación.
CARDINALIDAD DE LA RELACION. Cantidad de tuplas que forman parte de la relación.
CLAVES. Es el(los) campo(s) que van a permitir identificar de manera única y mínima a una tupla dentro de la relación.
CLAVE AGENA. Es un campo que es clave de otra relación, utiliza para establecer una interrelación.
INTERRELACION. Un vínculo entre dos tablas, el cual se establece entre la clave primaria de una relación y la clave ajena (1-1, 1-n).
INSTANCIA. Conjunto de tuplas en un instante de tiempo
INTEGRIDAD
Una base de datos contiene unos datos que en cada momento deben reflejar la realidad o más concretamente la situación de una porción del mundo real.En el caso de las bases de datos relacionales esto significa que las tuplas que contienen las relaciones deben tener valores que reflejen la realidad correctamente.
Ejemplo: Un sueldo negativo
En la relación de esquema EMPLEADOS(DNI, nombre, apellido, sueldo), una tupla que tiene un valor de –1.000 para el sueldo no tiene sentido, porque los sueldos no pueden ser negativos.
Existen dos reglas de integridad, que son restricciones que se deben cumplir en todas las Bases de.Datos:
Regla de integridad de entidades o de dominio. Se aplica a las claves primarias de las relaciones base y menciona lo siguiente: Ninguno de los atributos que componen la clave primaria puede ser nulo.
Regla de integridad referencial. La segunda regla de integridad se aplica a las claves ajenas o foráneas y menciona lo siguiente: Si en una relación hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulos.
VISTA. Es una tabla virtual, que no existe en la realidad, solamente se almacena su definición, se obtienen a partir de las tablas bases, mediante una asociación de operación y tienen las siguientes características:
Sus columnas se pueden obtener a partir de múltiples tablas bases
Pueden ser definidas a partir de otras vistas
Sus datos, se obtienen como resultado de operaciones de recuperación
Se puede almacenar su definición para su uso posterior.
RESTRICCIONES DEL MODELO
No puede aparecer dos filas iguales en una misma relación
Que el(los) atributo(s) que forman parte de la clave no pueden tomar valores nulos
CARACTERISTICAS QUE DEBE CUMPLIR:
Cada columna debe estar identificado por un nombre específico que debe ser único
El valor de una columna para una fila debe ser único
PROPIEDADES
Las filas pueden estar en diferente orden
Una fila hace referencia mediante todos los valores que la forma
Las columnas pueden estar en cualquier orden
Se hace referencia a una columna mediante el nombre que la identifica
EXTENSIONES Y COMPRENSIONES
Una relación en una base de datos relacional tiene dos componentes: Extensión y Comprensión. La extensión de una relación específica, es el conjunto de tuplas que aparecen en una relación en cualquier instante dado.
La extensión varía con el tiempo, es decir, cambia a medida que las tuplas se crean, eliminan y actualizan.
La compresión de una relación específica es independiente del tiempo. Es la parte permanente de la relación, En términos más precisos, la comprensión es la combinación de una estructura nominadora y un conjunto de restricciones de integridad.
La estructura nominadora se compone del nombre de la relación y los nombres de los atributos (cada uno asociado con el nombre de su dominio asociado).
Dependencia funcional
Una dependencia funcional es una conexión entre uno o más atributos.
Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre .
Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera:
FechaDeNacimiento –> Edad
De la normalización (lógica) a la implementación (física o real) puede ser sugerible tener éstas dependencias funcionales para lograr la eficiencia en las tablas.
Propiedades de la Dependencia funcional
Existen 3 axiomas de Armstrong:
Dependencia funcional Reflexiva
Si "y" está incluido en "x" entonces x –> y
A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo. Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre.
Dependencia funcional Aumentativa
x →y entonces xz → yz
DNI → nombre
DNI,dirección → nombre,dirección
Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección.
Dependencia funcional transitiva.
Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería:
X → Y → Z entonces X → Z
FechaDeNacimiento → Edad
Edad → Conducir
FechaDeNacimiento → Edad → Conducir
Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor de cierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo).
"C será un dato simple (dato no primario), B,será un otro dato simple (dato no primario), A, es la llave primaria (PK). Decimos que C dependera de B y B dependera funcionalmente de A."
Propiedades deducidas
Unión
x → y y x → z entonces x → yz
Pseudo-transitiva
x y wy → z entonces wx → z
Descomposición
x → y y z está incluido en y entonces x → z
Claves
Una clave primaria es aquella columna (o conjunto de columnas) que identifica únicamente a una fila. La clave primaria es un identificador que va a ser siempre único para cada fila. Se acostumbra a poner la clave primaria como la primera columna de la tabla pero es más una conveniencia que una obligación. Muchas veces la clave primaria es numérica auto-incrementada, es decir, generada mediante una secuencia numérica incrementada automáticamente cada vez que se inserta una fila.
En una tabla puede que tengamos más de una columna que puede ser clave primaria por sí misma. En ese caso se puede escoger una para ser la clave primaria y las demás claves serán claves candidatas.
Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla.
Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes.
Una clave compuesta es una clave que está compuesta por más de una columna.
La visualización de todas las posibles claves candidatas en una tabla ayudan a su optimización. Por ejemplo, en una tabla PERSONA podemos identificar como claves su DNI, o el conjunto de su nombre, apellidos, fecha de nacimiento y dirección. Podemos usar cualquiera de las dos opciones o incluso todas a la vez como clave primaria, pero es mejor en la mayoría de sistemas la elección del menor número de columnas como clave primaria.