Estructura de datos relacional.docx

download Estructura de datos relacional.docx

of 12

Transcript of Estructura de datos relacional.docx

  • 7/22/2019 Estructura de datos relacional.docx

    1/12

    Resea histrica

    En 1970 Edgar F. Codd public un trabajo proponiendo un nuevo modelo de datos quepersegua como objetivo general la flexibilidad y sencillez; el modelo ofrece estructuras dedatos simples y lenguajes sencillos para los usuarios, facilitando la comprensin y

    utilizacin por estos. Sin menoscabo de este objetivo de sencillez, el autor se proponefundamentar el modelo sobre una slida base matemtica.La aparicin del modelo relacional representa un verdadero hito en el desarrollo de lasbases de datos, ya que ha marcado tres etapas diferentes, conocidas como generacionesde los SGBDs:

    Pre-relacionales. Los SGBD se basan en modelos Codasyl (en red) y Jerrquico y ficherosplanos (flat files). Relacionales. Los sistemas relacionales ganan madurez en el mercado y los productos

    basados en este modelo van desplazando poco a poco a los sistemas basados en punterosde la etapa prerelacional. Post-relacionales. Aparecen manifiestos de otros modelos de datos, en especial losorientados a objeto. Se distinguen manifiestos puristas OO que dan lugar a SGBDs-OOpuros como O2, Gemstone, etc. y, en paralelo, corrientes evolutivas del modelo relacionalque relajan hiptesis bsicas del modelo original de Codd (relajacin de la primera formanormal) para ofrecer estructuras de datos ms complejas. Se propone una evolucindesde el modelo relacional a SGBDs-OO relacionales, p. ej. SQL3.Sobre el modelo relacional se han definido los estndares ANSI e ISO del extendidolenguaje de definicin y manipulacin de bases de datos relacionales SQL (StructuredQuery Language).

  • 7/22/2019 Estructura de datos relacional.docx

    2/12

    Estructura de datos relacional

    Una base de datos relacional consiste en un conjunto de tablas, a cada una de las cualesse le asigna un nombre exclusivo. Cada fila de la tabla representa una relacin entre unconjunto de valores. Dado que cada tabla es un conjunto de dichas relaciones, hay una

    fuerte correspondencia entre el concepto de tabla y el concepto matemtico de relacin,del que toma su nombre el modelo de datos relacional.

    Estructura bsica

    Considrese la tabla cuenta. Tiene tres cabeceras de columna: nmero-cuenta, nombre-sucursal y saldo. Siguiendo la terminologa del modelo relacional se puede hacerreferencia a estas cabeceras como atributos. Para cada atributo hay un conjunto devalores permitidos, llamado dominio de ese atributo. Para el atributo nombre-sucursal,por ejemplo, el dominio es el conjunto de los nombres de las sucursales.

    TABLAS: son esencialmente relaciones. ATRIBUTOS: son las cabeceras de las tablas. DOMINIO: es el conjunto de valores que toma un atributo. TUPLAS: son cada una de las lneas que contiene una tabla. CLAVE PRIMARIA: atributo o conjunto de atributos de una relacin que identifican

    inequvocamente a una tupla.o Requisitos para que una clave primaria lo sea: Unicidad: el valor de la clave primaria de una tupla, no se puede repetir. Minimalidad: si el PK (Primary Key) es compuesto, no se podr eliminar ninguno de sus

    componentes. CLAVE FORNEA O EXTERNA: atributo o conjunto de atributos que son clave primaria en

    otra relacin o tabla.

  • 7/22/2019 Estructura de datos relacional.docx

    3/12

    Evolucin del modelo relacional

    Evolucin del modelo relacional

    1968 - 1970 Surge el modelo

    1970 . . . Desarrollos tericos

    1973 - 1978 Prototipos (Ingres, sistema R, etc. . .)

    PRERELACIONAL

    1978 QBE

    1979 Oracle

    1980 Ingres

    1981 SQL

    1982 DB2

    1986 SQL/ ANS

    1987 SQL ISO (9075)

    1989 SQL Addendum

    1989 Manifiesto de los SGBO

    RELACIONAL

    1990 Modelo Relacional Versin 2

    1990 Manifiesto de los SGBO- 3G

    1992 SQL 92

    1995 3er Manifiesto

    POSTRELACIONAL

    1999 SQL 3

  • 7/22/2019 Estructura de datos relacional.docx

    4/12

    Terminologa

    1 Relacin.

    Es la estructura bsica del modelo relacional. Con una relacin es posible representar

    tanto instancias de una entidad del universo real como interrelaciones entre entidades dedistinto tipo. Es capaz de recoger interrelaciones de cardinalidad mltiple. Surepresentacin informal es una tabla.

    2 Dominio.

    Es el conjunto vlido de valores de referencia para definir propiedades o atributos. Undominio es un conjunto nominado y homogneo de valores. Cada dominio puededefinirse de dos maneras:

    Por extensin (enumeracin de sus elementos):

    Das de la semana = {lunes, martes, mircoles, jueves, viernes, sbado, domingo}

    Por intensin (mediante una propiedad que recoja el recorrido de sus valores

    admisibles): edad: entero / 0 edad 200.

    Un dominio compuesto se puede definir como una combinacin de dominios simples a laque se puede aplicar ciertas restricciones.

    Ej.: el dominio compuesto denominado Fecha se construye por agregacin de los

    dominios simples Da, Mes y Ao, incorporando las restricciones a fin de que no aparezcanvalores invlidos como: 29/2/2003, 31/4/2004.

    3 Atributo.

    Representa las propiedades de la relacin. Un atributo, necesariamente ha de definirsesobre un dominio. Su representacin informal es una columna.

    Un atributo (A) es la interpretacin de un determinado dominio en una relacin, es decirel papel que juega el dominio en la misma.

    D = Dom (A) D es el dominio de A

    Un atributo est siempre asociado a una relacin, mientras que un dominio tiene

    existencia propia con independencia de las relaciones que existan en el modelo.

    Un atributo representa una propiedad de una relacin.

    Un atributo toma valores de un dominio.

  • 7/22/2019 Estructura de datos relacional.docx

    5/12

    Varios atributos distintos (de la misma o de diferentes relaciones) pueden tomar sus

    valores del mismo dominio.

    4 Tupla.

    Es una ocurrencia o instancia dentro de una relacin. Una tupla permite referenciar unainstancia de una entidad en el universo o la interrelacin especfica o concreta entreinstancias de entidades. Su representacin informal es una fila. Una relacin tiene unconjunto de tuplas.

    La relacin es el elemento fundamental del modelo relacional.

    5 Grado.

    Se define como el nmero de dominios Di

    6 Cardinalidad.

    Se define como el nmero de tuplas de la relacin.

    7 Relaciones vs tablas

    Existen diferencias entre ambas estructuras.

    Tabla

    Un orden definido para las filas.

    Un orden definido para los valores de los atributos.

    Pueden repetirse filas.

    Relacin

    Ni las tuplas ni los valores de los componentes de una tupla se referencian por su

    posicin relativa (no hay un orden predefinido para el conjunto).

    No pueden repetirse tuplas, pues un conjunto no tiene elementos repetidos.

  • 7/22/2019 Estructura de datos relacional.docx

    6/12

    Contexto matemtico del MR

    1 Concepto de relacin matemtica

    Puede definirse una relacin apoyndose en la teora de conjuntos:

    Dados los Dominios D1.Dn, no necesariamente distintos, el producto cartesiano : D* =D1 D2 ... Dn conjunto de todas las posibles n-tuplas t < d1, d2, ... dn> / i di Di

    R es una relacin definida sobre D* si es un subconjunto del producto cartesiano D* :R D*

    Cada elemento de la relacin (t:tupla) es una lista de n valores, tales que el valor i-simocorresponde a una propiedad que toma valores del dominio i-simo.

    El nmero de tuplas de la relacin recibe el nombre de Cardinalidad y el nmero de

    dominios Di el nombre de Grado

    Una relacin es un conjunto, luego:

    No existen tuplas duplicadas

    Las tuplas no estn ordenadas.

    Esta definicin conjuntista de relacin ofrece una granularidad a nivel de tupla. Lagranularidad a nivel de tupla ofrece una fuerte dependencia entre estructuras de datos y

    programas, de modo que los cambios en la estructura del esquema de una relacin puedeobligar a modificar los programas de aplicacin que acceden a dicha relacin.

    2 Concepto de relacin en el modelo relacional

    Con objeto de conseguir una granularidad ms fina y mejorar la independencia de datos,Codd propone relajar la hiptesis de correspondencia posicional de valores de atributosen una tupla respecto a sus dominios. Se redefine una relacin como:

    Un nombre de relacin.

    Un conjunto de atributos A = ({Ai}) donde el nmero de atributos es el grado de larelacin.

    Un conjunto de dominios D = ({Di}).

    Una aplicacin que asocia a cada atributo de A un dominio D. Dom: A D

  • 7/22/2019 Estructura de datos relacional.docx

    7/12

    Estos cuatro componentes de una relacin reciben el nombre de intensin o esquema dela relacin y se representa con la notacin R ({Ai: Di})

    Un conjunto de tuplas { }t t / : vi i A de modo que t {Ai : vi}{t} se denominaextensin de la relacin.

    Con esta definicin no hay una relacin posicional de valores/dominios, sino unacorrespondencia atributo/valor dentro de cada tupla; se ha conseguido granularidad anivel de atributo elemental. Se recuperan los valores en una tupla por la denominacin delatributo en vez de por su posicin. Los cambios en el esquema de la relacin queimpliquen adicionar nuevos atributos no afectarn a programas de aplicacin queaccedan a un subconjunto de valores de una tupla.

  • 7/22/2019 Estructura de datos relacional.docx

    8/12

    Restricciones

    1 Claves en el modelo relacional

    1.1 Concepto intuitivo de identificador

    Al manejar cualquier estructura de datos se hace necesario distinguir elementos enconjuntos de datos. Intuitivamente, un identificador, en general, es un subconjunto depropiedades que permite distinguir o identificar elementos dentro de dicho conjunto.

    En general, pueden existir distintos identificadores en una estructura de datos.

    1.2 Concepto de superclave

    En el modelo relacional, como una relacin es un conjunto, no puede tener elementosduplicados, luego est implcita la existencia de, al menos un identificador para las tuplas

    de la relacin.

    Una superclave cumple la condicin de unicidad:

    Sea R ({ Ai : Di})

    SK= { Aj} RSK es una superclave de R si t1,t2 / t1 = t2 t1.K = t2.K)1.3 Clave Candidata

    SeaR ( {Ai : Di })

    K = {Aj } RK es una clave candidata si cumple dos condiciones:

    I)Unicidad

    t1,t2 / (t1 =t2) T1.k=t2.K)II) Minimalidad

    K K,K/ verifique la condicin (I) de unicidad enRDe la definicin de relacin se deriva que siempre existe, al menos, una clave candidata (alser una relacin

  • 7/22/2019 Estructura de datos relacional.docx

    9/12

    un conjunto y no existir dos tuplas iguales, el conjunto de todos los atributos siempretiene que identificar unvocamente a cada tupla).

    El concepto de clave es muy relevante en el modelo relacional y representa el mecanismopara referenciar las tuplas de una relacin.

    1.4 Clave Primaria

    Una relacin puede tener ms de una clave candidata.

    La clave primaria (Primary Key) es la clave candidata que el usuario escoge para identificar

    las tuplas de la relacin (siempre existe clave primaria).

    1.5 Clave Alternativa

    Las claves alternativas (Alternative Key) son las claves candidatas que no han sido

    escogidas como clave primaria.

    1.6 Clave Ajena

    Sean R ({Ai : Di}) y S ({ Bj : Ej}): no necesariamente distintas donde,

    PKR = {Ait} y PKS = {Ajt} son las claves primarias de cada relacin

    Si FKR/S = {Ait} / (FKR /S R, FKR/S )(dom (FK R/S) = dom (PKS))

    FKR/Ses una clave ajena en la relacin Rrespecto de la relacin S

    Las claves ajenas son el mecanismo de referencia del MR. Permite representar

    interrelaciones 1:1 y 1:m incluyendo la clave primaria de la relacin referenciada en la

    relacin desde que se hace la referencia.

    Tambin es posible representar interrelaciones mltiples (m:n) definiendo una nueva

    relacin cuya clave primaria se compone de las claves primarias de las relacionesreferenciadas, actuando, a la vez, dichas claves como claves ajenas de dichas relaciones.

  • 7/22/2019 Estructura de datos relacional.docx

    10/12

    Reglas de integridad del MR

    1 Valor null en el MR

    Se define como null el valor que puede tomar un atributo en una tupla cuando se

    desconoce dicho valor; p.ej. No se sabe el domicilio de una persona, Se desconoce sufecha de nacimiento, etc.. Se diferencia el valor null de cualquier otro valor (blanco,--,

    etc.) que implique una asignacin a un atributo; null significa que dicho atributo no tiene

    asociado ningn valor o que su valor es desconocido. Null puede asignarse a tributos en

    cualquier dominio; ahora bien, no es equivalente el valor null de un atributo tipo fecha

    con el valor null del domicilio de una persona; es decir no se pueden comparar nulos de

    atributos distintos; s puede evaluarse si el valor de un atributo es o no null.

    Alumnos (dni:D_dni, nombre: String, domicilio: String, Fecha_nac: Date) Pk(dni)

    Ej. de tuplas:

    t1

    t2

    t3

    t4

    2 Integridad de la entidad

    La regla de integridad de la entidad es el mecanismo que gobierna el comportamiento de

    la clave primaria de una relacin, de modo que la representacin de entidades en el

    modelo relacional garantice la identificacin o distincin de las mismas en el universo de

    modelado.

    "Ningn atributo que forme parte de la clave primaria de una relacin puede tomar un

    valor nulo"; es decir, un valor desconocido o inexistente.

    Sea R[{Ai : Di{] PK = {Ait}RTR( itt.Ait null)Justificacin de la regla:

  • 7/22/2019 Estructura de datos relacional.docx

    11/12

    I) Si Pk es un atributo elemental, p.ej. DNI del alumno, ste no puede tomar el valor null,

    puesto que si la propiedad es desconocida, significa que en el mundo modelado, no se

    conoce Quin es el alumno? Y por tanto tampoco podra distinguirse de otro alumno;

    esto independientemente de que slo haya una tupla con ese valor.

    II) Si Pk est formada por un descriptor compuesto, P.ej. (tienda, dni:cliente, fecha_pedido) como subconjunto de atributos elegido para la identificar pedidos en una tienda

    realizados por un cliente; si se estima que en algn caso, es decir en alguna tupla, con la

    (tienda y el dni:cliente) puede identificarse dicha tupla es que, en general, puede

    desecharse la fecha pedido para identificar las tuplas del pedido, con lo que esto

    contradice que (tienda, dni:cliente, fecha_pedido) sea clave primaria, pues no cumple la

    condicin de minimalidad; (tienda, dni:cliente, fecha_pedido) sera una superclave.

    3. Integridad referencial

    La regla de integridad referencial gobierna las situaciones de representacin de

    interrelaciones en el universo de discurso, de modo que se representan vnculos

    existentes o inexistentes, pero se eviten referencias no permitidas.

    Sean

    R ({Ai : Di}) y S ({Bj : Ej}) no necesariamente distintas donde

    PKR = {Ait} y PKS ={Ajt} son las claves primarias de cada relacin

    Si FKy es una clave ajena en la relacin Rrespecto de la relacin S, entonces:I) Existe una referencia en Rrespecto a S:

    [(t R)(t.FK null)] s S/s PK = t.FKo bien

    II) No se referencia ninguna tupla de S:

    [( t R) it FK / t. it = null)] it FK,t it = null s S/s.PK = t.FK

    Justificacin de la regla:

  • 7/22/2019 Estructura de datos relacional.docx

    12/12

    I) Si FK referencia una tupla, p.ej. editorial del libro, si toma un valor no nulo, este valor

    necesariamente ha de corresponder a una tupla de editorial existente en la relacin de

    editoriales. No se admiten un valor que no est debidamente referenciado.

    II) Si FK no referencia una tupla, Ej.I) El valor del cdigo de departamento de un profesor

    es nulo; esto significara que el profesor no est asignado a ningn departamento (si estesupuesto semntico tiene cabida en el universo modelado).

    Ej.II) El descriptor (NPedido, LneaPedido, LneaFactura) es la clave primaria de la relacin

    Lneas_de_factura (N Pedido, Lnea Pedido, Lnea Factura, cant, precio) y la clave ajena

    (NPedido, LneaPedido) sobre una relacin de lneas de pedido toma el valor (104,null).

    No es posible incluir una lnea de factura sin referenciar una lnea de pedido aunque se

    referencia el cdigo del pedido. Es necesario definir la tupla (N Pedido, Lnea Pedido)

    que, a su vez, es la clave primaria de la relacin Lneas_de_pedido referenciada.