Bases de datos relacionales                          Roberto Hernando Velasco                            (http://www.rhern...
El dominio de los atributos nombre y apellido es el conjunto de todas las cadenasalfanum´ricas de determinada longitud, y ...
3.1.1.   Uni´n, ∪            o   La uni´n de dos relaciones R y S (R ∪ S) se define como el conjunto formado          opor ...
Relaci´n R × S                                                          o         Relaci´n R               o              ...
crear o destruir ´                 ındices y eliminar relaciones. Permite tambi´n la definici´n de vistas                  ...
Próxima SlideShare
Cargando en…5
×

Bdr

310 visualizaciones

Publicado el

bases de datos

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
310
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Bdr

  1. 1. Bases de datos relacionales Roberto Hernando Velasco (http://www.rhernando.net) 24 de abril de 20041. Introducci´n o A finales de los setenta Codd introdujo la teor´ de las relaciones, proponiendo ıaun modelo de datos basado en relaciones o tablas. El modelo de datos relacionaltuvo un auge espectacular a finales de los setenta, y hoy en d´ es uno de los modelos ıam´s utilizados por los Sistemas Gestores de Bases de Datos. a2. Estructura del modelo de relaci´n o El elemento b´sico del modelo relacional es la relaci´n, que se representa me- a odiante una tabla (v´ase la figura 1). e relaci´n o atributo 1 atributo 2 ... atributo n xxxx xxxx ... xxxx xxxx xxxx ... xxxx xxxx xxxx ... xxxx Figura 1: Representaci´n de una relaci´n en forma de tabla. o o En ella podemos distinguir un conjunto de columnas, denominadas atributos,que representan propiedades de la misma, y un conjunto de filas llamadas tuplas,que son las ocurrencias de la relaci´n. Cada uno de los atributos puede tomar valores odentro de un rango determinado, que se denomina dominio. El n´mero de filas de una relaci´n se llama cardinalidad, mientras que el n´mero u o ude columnas es el grado.2.1. Ejemplo de relaci´n o En la figura 2 se tiene un ejemplo de relaci´n. El nombre de la relaci´n es o oEmpleados, y est´ compuesta por un subconjunto de tres elementos formados a apartir del producto cartesiano de tres conjuntos de atributos (nombre, apellido,sueldo). Nombre Apellido Sueldo Juan Garc´ ıa 1200 Pedro Guti´rrez e 1700 Mar´ ıa L´pez o 2100 Figura 2: Relaci´n Empleados o 1
  2. 2. El dominio de los atributos nombre y apellido es el conjunto de todas las cadenasalfanum´ricas de determinada longitud, y el dominio del atributo sueldo son los en´meros positivos hasta cierta cantidad. u La cardinalidad de la relaci´n empleados es tres, correspondiente al n´mero de o ufilas de la tabla, y su grado es cuatro, igual al n´mero de columnas. u Como queda claro en el ejemplo, en el modelo relacional la nomenclatura ma-tem´tica (relaci´n, cardinalidad y atributos) y la propia de su representaci´n gr´fica a o o a(tabla, filas y columnas) es intercambiable, por lo que se utilizan ambas indistinta-mente.2.2. Caracter´ ısticas de las relaciones Dentro de la representaci´n de las relaciones como tablas se pueden hacer las osiguientes consideraciones: No puede haber filas duplicadas. Todas las tuplas tienen que ser distintas. El orden las filas es irrelevante. El orden de los atributos no es significante. No se admiten atributos multivaluados. Es decir, en cada celda de la tabla s´lo puede haber un valor. o2.3. Claves Como hemos visto, en una tabla no puede haber dos filas iguales. Por ello, debehaber uno o varios atributos que se puedan utilizar para distinguir unas tuplas deotras. Cualquier atributo o conjunto m´ ınimo (1 ) de atributos que sirva para esteprop´sito se denomina clave candidata. o A la clave candidata que se escoge para identificar las tuplas de una relaci´n se ola denomina clave primaria. La elecci´n de esta clave no es unica, aunque se suele o ´utilizar la m´s corta por razones de eficiencia. El resto de claves candidatas que no ahan sido elegidas como clave primaria reciben el nombre de claves alternativas.3. ´ Algebra Relacional El ´lgebra relacional nos dice c´mo manipular las relaciones, mediante una serie a ode operaciones. Matem´ticamente el ´lgebra relacional es un ´lgebra completa, es a a adecir, por medio de ella se puede hacer cualquier acceso a la base de datos.3.1. Operadores b´sicos a El ´lgebra relacional presenta cinco operadores b´sicos: uni´n, diferencia, pro- a a oducto cartesiano, proyecci´n y selecci´n. o o A partir de estos cinco operadores es posible definir todos los dem´s, como apueden ser la intersecci´n, el cociente y la uni´n natural. o o 1 Por conjunto m´ ınimo se entiende aquel conjunto de atributos tal que si se elimina uno de ellosel conjunto resultante deja de ser clave candidata. 2
  3. 3. 3.1.1. Uni´n, ∪ o La uni´n de dos relaciones R y S (R ∪ S) se define como el conjunto formado opor todas las tuplas de R m´s todas las tuplas de S. a Este operador s´lo se puede aplicar a relaciones del mismo grado y con los omismos atributos. En la figura 3 tenemos un ejemplo de uni´n de dos relaciones. o Relaci´n R ∪ S o Relaci´n R o Relaci´n S o C´digo o Provincia C´digo o Provincia C´digo o Provincia 01 ´ Alava 01 ´ Alava 03 Alicante 02 Albacete 02 Albacete 04 Almer´ıa 03 Alicante 04 Almer´ıa Figura 3: Ejemplo del operador uni´n o3.2. Diferencia, − La diferencia de dos relaciones R y S (R−S) se define como el conjunto formadopor todas las tuplas de R que no est´n en S. a Este operador s´lo se puede aplicar a relaciones del mismo grado y con los omismos atributos. V´ase el ejemplo de la figura 4. e Relaci´n R o Relaci´n S o Relaci´n R − S o C´digo o Provincia C´digo o Provincia ´ C´digo o Provincia 01 Alava 03 Alicante ´ 02 Albacete 02 Albacete 01 Alava Figura 4: Ejemplo del operador diferencia3.3. Producto cartesiano, × El producto cartesiano de dos relaciones R y S (R × S), de grados m y nrespectivamente, se define como el conjunto formado por todas las posibles tuplasde m + n elementos en las que los m primeros elementos son de R y los n restantespertenecen a S. En la figura 5 se ve un ejemplo de producto cartesiano.3.3.1. Proyecci´n, π o Si X es un subconjunto de atributos de la relaci´n R, se define la proyecci´n de R o osobre X (πX (R)) como la relaci´n formada por las columnas de R correspondientes oa los atributos de X. En la figura 6 se tiene un ejemplo de proyecci´n, siendo X = (provincia). o 3
  4. 4. Relaci´n R × S o Relaci´n R o Relaci´n S o C´digo o Provincia Cantidad C´digo o Provincia Cantidad 01 ´ Alava 45 01 ´ Alava 45 01 ´ Alava 67 02 Albacete 67 02 Albacete 45 02 Albacete 67 Figura 5: Ejemplo del operador producto cartesiano Relaci´n R o Relaci´n πX (R) o C´digo o Provincia Provincia 01 ´ Alava ´ Alava 02 Albacete Albacete Figura 6: Ejemplo del operador proyecci´n o3.3.2. Selecci´n, σ o Si F es una f´rmula compuesta por operadores l´gicos, aritm´ticos y de compa- o o eraci´n, y sus operandos son los valores de los atributos de una relaci´n R, entonces o ola selecci´n σF (R) es el conjunto de tuplas de la relaci´n R que hacen verdadera la o ocondici´n establecida por la f´rmula F . o o En la figura 7 tenemos un ejemplo, donde F = (c´digo = ’01’) OR (Provincia o> ’Alicante’) Relaci´n R o Relaci´n σF (R) o C´digo o Provincia 01 ´ Alava C´digo o Provincia 02 Albacete 01 ´ Alava 03 Alicante 04 Almer´ıa 04 Almer´ıa Figura 7: Ejemplo del operador selecci´n o4. El lenguaje SQL El SQL (Structured Query Language) es el lenguaje de manipulaci´n de datos orelacionales m´s extendido, habi´ndose convertido en un est´ndar de facto. a e a SQL permite realizar consultas utilizando los recursos del ´lgebra relacional acombinados con el c´lculo relacional de tuplas. a4.1. Partes del lenguaje SQL4.1.1. Lenguaje de Descripci´n de Datos, DDL (Data Description Lan- o guage) Es el lenguaje utilizado para la creaci´n y mantenimiento de la estructura de ola base de datos. Se utiliza para definir y modificar los esquemas de las relaciones, 4
  5. 5. crear o destruir ´ ındices y eliminar relaciones. Permite tambi´n la definici´n de vistas e oy permisos de acceso para los usuarios. Es el lenguaje que utiliza el administrador de la base de datos para realizar sustareas.4.1.2. Lenguaje de Manipulaci´n de Datos, DML (Data Manipulation o Language) Incluye todas las instrucciones para realizar consultas a las bases de datos, in-sertar, modificar o eliminar datos. Es el que utilizan los usuarios finales en la fase de explotaci´n de la base de odatos.4.2. Definici´n de datos o4.2.1. Creaci´n de tablas o Las tablas se crean con el comando CREATE TABLE, de la siguiente forma: CREATE TABLE nombreTabla ( nombreColumna1 tipoColumna1, nombreColumna2 tipoColumna2, ... PRIMARY KEY (columnasClave) )4.2.2. Actualizaci´n de tablas o Despu´s de crear las tablas se puede insertar, modificar o eliminar informaci´n e oen las mismas, mediante los siguientes comandos: INSERT INTO nombreTabla [(listaColumnas)] {VALUES (datos) | comandoSelecci´n} o UPDATE nombreTabla SET nombreColumna = expresi´n o DELETE FROM nombreTabla WHERE condici´n o4.3. Consultas4.3.1. El comando SELECT Las consultas en SQL son posibles gracias al comando SELECT, que tiene lasiguiente estructura: SELECT atributos FROM relaciones [WHERE condici´n] o En t´rminos de ´lgebra relacional, el comando SELECT es equivalente a la e aasociaci´n de una selecci´n, una proyecci´n y un producto cartesiano. Los atributos o o ode la proyecci´n se especifican en la cl´usula SELECT; la cl´usula FROM especifica o a alas relaciones de las que se han de tomar esos atributos; y la cl´usula WHERE (que aes opcional) contiene una condici´n de selecci´n. o o 5

×