MODELO RELACIONAL BASE DE DATOS RELACIONALES

23
MODELO RELACIONAL BASE DE DATOS RELACIONALES

Transcript of MODELO RELACIONAL BASE DE DATOS RELACIONALES

Page 1: MODELO RELACIONAL BASE DE DATOS RELACIONALES

MODELO RELACIONALBASE DE DATOS RELACIONALES

Page 2: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Una BDR es unaUna BDR es una colección de relaciones dcolección de relaciones deediversos grados (numero de atributos), qdiversos grados (numero de atributos), queue varíanvaríancon el tiempo (numero decon el tiempo (numero de tuplastuplas, estado), estado)ääLas relaciones (tablas) son la estructura lógica deLas relaciones (tablas) son la estructura lógica dela BD, corresponden a los Niveles externo yla BD, corresponden a los Niveles externo yconceptual.conceptual.

Base de Datos Relacional (BDR)Base de Datos Relacional (BDR)

Page 3: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Presentación y Orígenes delModelo Relacional

Presentación y Orígenes delModelo Relacional

ää El modelo Relacional fue introducido por Codd en elEl modelo Relacional fue introducido por Codd en elaño 1970.año 1970.

ää Es un Modelo de Datos LógicoEs un Modelo de Datos Lógico -- basado en registrosbasado en registrosää El modelo más usado en las aplicaciones comerciales deEl modelo más usado en las aplicaciones comerciales de

procesamiento de datos convencional.procesamiento de datos convencional.Esta dividido en 3 partes:Esta dividido en 3 partes:

1. Estructura de Datos1. Estructura de Datos2. Integridad de Datos (características generales)2. Integridad de Datos (características generales)3. Manipulación de Datos3. Manipulación de Datos

Page 4: MODELO RELACIONAL BASE DE DATOS RELACIONALES

RelaciónRelación está representada mediante unaestá representada mediante una TablaTabla conconfilas y columnas. Representa unafilas y columnas. Representa una entidad genérica,entidad genérica,

1. Estructura de datosrelacional

1. Estructura de datosrelacional

Page 5: MODELO RELACIONAL BASE DE DATOS RELACIONALES

--RelaciónRelación (Tabla):(Tabla):. Es una estructura simple en el. Es una estructura simple en elcual los datos son organizados y almacenados.cual los datos son organizados y almacenados.TuplaTupla (Fila).(Fila). Cada fila describe una ocurrencia deCada fila describe una ocurrencia deuna relaciónuna relaciónAtributoAtributo(columna)(columna). Debe tener un nombre único. Debe tener un nombre únicodentro de cada relación.dentro de cada relación. es usada para almacenares usada para almacenarun tipo de valorun tipo de valor..CardinalidadCardinalidad.. Numero de tuplas en una relación.Numero de tuplas en una relación.GradoGrado.. Numero de atributos en una relaciónNumero de atributos en una relación

Términos Básicos en el ModeloRelacional

Términos Básicos en el ModeloRelacional

Page 6: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Estado = conjunto matemático deEstado = conjunto matemático de tuplastuplasää NoNo existenexisten tuplastuplas repetidasrepetidasää LasLas tuplastuplas nono estánestán ordenadasordenadasää LosLos atributos noatributos no estánestán ordenadosordenadosesquema = conjunto de paresesquema = conjunto de pares Atributo:DominioAtributo:Dominioää LosLos valoresvalores dede atributosatributos sonson AtómicosAtómicos

Propiedades de una relaciónPropiedades de una relación

Page 7: MODELO RELACIONAL BASE DE DATOS RELACIONALES

RelaciónRelación:: Representación abstractaRepresentación abstracta de elemento ode elemento oentidad de datosentidad de datosTabla:Tabla: Representación concretaRepresentación concreta de tal elemento abstractode tal elemento abstracto

Fácil de utilizar, entender, razonar...Fácil de utilizar, entender, razonar...

Relación vs. TablaRelación vs. Tabla

pedi-num cli-num emb-fech

1 32 1/3

2 33 1/2

3 17 1/4

Page 8: MODELO RELACIONAL BASE DE DATOS RELACIONALES

DominioDominio Conjunto de valores atómicosConjunto de valores atómicos del mismo tipo,del mismo tipo,donde toman su valor los atributosdonde toman su valor los atributos

Una relaciónUna relación RR, sobre conjunto de dominios, sobre conjunto de dominios DnDn sesecomponecompone de dos partes:de dos partes:

EsquemaEsquema oo CabeceraCabecera:: Conjunto de paresConjunto de paresAtributo:Atributo:DominioDominio { (A{ (A11:D:D11), (A), (A22:D:D22) ... (A) ... (Ann:D:Dnn) }) }

Cada ACada Ajj tiene asociado sólo un Dtiene asociado sólo un DjjLos DLos Dii no tienen por qué ser distintos entre síno tienen por qué ser distintos entre sí

Estado,Estado, CuerpoCuerpo o Instanciao InstanciaConjunto deConjunto de tuplastuplas que contiene en un instanteque contiene en un instante

tuplatupla = conjunto de pares= conjunto de pares Atributo:ValorAtributo:Valor{ { (A1:vi1), (A2:vi2) ... ({ { (A1:vi1), (A2:vi2) ... (An:vinAn:vin) } },) } }, dondedonde ii=1..m=1..m

Definiciones FormalesDefiniciones Formales

Page 9: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Un esquema de relación es:Un esquema de relación es:EMPLEADOEMPLEADO ((Id:IdsId:Ids,, Nombre:NombresNombre:Nombres,,Dirección:DireccionesDirección:Direcciones,, Fecha_Nacimiento:FechasFecha_Nacimiento:Fechas,,Id_Dpto:IdsId_Dpto:Ids ))Un estado de la relaciónUn estado de la relación es:es:{ { (Id:126), ({ { (Id:126), (Nombre:FloresNombre:Flores), (Dirección: 2,Munaypata),), (Dirección: 2,Munaypata),

(Fecha_nacimiento:03(Fecha_nacimiento:03--0303--66) (66) (Id_dptoId_dpto: 10) }: 10) }{ { (Id:349), ({ { (Id:349), (Nombre:LeonNombre:Leon), (Dirección: 53,El Alto),), (Dirección: 53,El Alto),

(Fecha_nacimiento:10(Fecha_nacimiento:10--0808--77) (77) (Id_dptoId_dpto: 20) }: 20) }

EjemploEjemplo

Page 10: MODELO RELACIONAL BASE DE DATOS RELACIONALES

2.Integridad de datos2.Integridad de datos

El modelo relacional tiene dos reglas que ayudan aEl modelo relacional tiene dos reglas que ayudan aasegurar la integridad de los datos. Estas sonasegurar la integridad de los datos. Estas son

••La regla de integridad de entidadLa regla de integridad de entidad establece que una claveestablece que una claveprimaria no puede tener valores nulos. Las claves ajenasprimaria no puede tener valores nulos. Las claves ajenaspueden contener valores nulos. No hay ningún requisitopueden contener valores nulos. No hay ningún requisitoen el modelo relacional que obligue a que una clave ajenaen el modelo relacional que obligue a que una clave ajenasea única.sea única.

••La regla de integridad referencialLa regla de integridad referencial considera la asociaciónconsidera la asociaciónentre las claves primarias y las claves ajenas. Laentre las claves primarias y las claves ajenas. Laintegridad referencial establece que una clave ajena debeintegridad referencial establece que una clave ajena debeexistir en una tabla que contenga la clave primaria.existir en una tabla que contenga la clave primaria.

Page 11: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Reglas de IntegridadReglas de Integridad

Las reglas de integridad informan al SGBD deLas reglas de integridad informan al SGBD derestricciones del mundo real.restricciones del mundo real.

Gracias a las reglas de IntegridadGracias a las reglas de Integridadää El SGBD evita configuraciones de datos imposiblesEl SGBD evita configuraciones de datos imposiblesää Aumentan la capacidad expresiva del modeloAumentan la capacidad expresiva del modelo

relacionalrelacionalää Cada BD particular, incluye:Cada BD particular, incluye:

ää Características generales de integridadCaracterísticas generales de integridad importantes yimportantes ynecesarias ennecesarias en todatoda BDBD

ää Claves Candidatas y PrimariasClaves Candidatas y Primariasää Claves AjenasClaves Ajenas (o foráneas o externas)(o foráneas o externas)

Page 12: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Superclave y clave de una relaciónSuperclave y clave de una relación

Sea R una relaciónSea R una relaciónää UnaUna superclavesuperclave de R es un subconjuntode R es un subconjunto SKSK de atributosde atributos

tal que cumple la restricción detal que cumple la restricción de UnicidadUnicidad es decir:es decir: NoNoexisten dos tuplas distintas con la misma combinaciónexisten dos tuplas distintas con la misma combinaciónde valores para SKde valores para SK

ää UnaUna claveclave de R es una superclave tal que cumple lade R es una superclave tal que cumple larestricción derestricción de IrreductibilidadIrreductibilidad esto significa que:esto significa que:Ningún subconjunto de SK cumple la restricción deNingún subconjunto de SK cumple la restricción deUnicidadUnicidad

ää Clave Simple (1 atributo) o Compuesta (variosClave Simple (1 atributo) o Compuesta (variosatributos)atributos)

ää Cada clave es una restricción de integridadCada clave es una restricción de integridad

Page 13: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Clave candidata, primaria yalternativa

Clave candidata, primaria yalternativa

Si R tiene varias clavesSi R tiene varias clavesàà Claves CandidatasClaves Candidatasää Claves (ACTOR) = { {nombre}, {nombreArtistico} }Claves (ACTOR) = { {nombre}, {nombreArtistico} }ää Claves (EMPLEADO) = { {Id}, {nombre, fecha_Nacimiento,},{nss}Claves (EMPLEADO) = { {Id}, {nombre, fecha_Nacimiento,},{nss}

}}ää La Clave PrimariaLa Clave Primaria (Primary Key, PK ) es la clave candidata elegida(Primary Key, PK ) es la clave candidata elegida

para identificar las tuplas de Rpara identificar las tuplas de Rää Clave Primaria (ACTOR) = {nombreArtistico}Clave Primaria (ACTOR) = {nombreArtistico}ää Clave Primaria (EMPLEADO) = {nss}Clave Primaria (EMPLEADO) = {nss}ää Las Claves Alternativas (AK) son el resto de claves candidatasLas Claves Alternativas (AK) son el resto de claves candidatasää Claves Alternativas (ACTOR) = {nombre}Claves Alternativas (ACTOR) = {nombre}ää Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }

Page 14: MODELO RELACIONAL BASE DE DATOS RELACIONALES

clave ajena (externa o foránea)clave ajena (externa o foránea)

Conjunto de atributos FK de una relación R2,Conjunto de atributos FK de una relación R2,tal que:tal que:

1. Existe otra relación R1 con clave primaria PK1. Existe otra relación R1 con clave primaria PK2. Cada valor de FK en R2 es idéntico al de PK en2. Cada valor de FK en R2 es idéntico al de PK en

alguna tupla de R1alguna tupla de R1“Una clave foránea es un conjunto de atributos“Una clave foránea es un conjunto de atributos

de una relación que hace referencia a la clavede una relación que hace referencia a la claveprimaria de otra relación (o la misma).”primaria de otra relación (o la misma).”

Page 15: MODELO RELACIONAL BASE DE DATOS RELACIONALES

clave ajena (externa o foránea)clave ajena (externa o foránea)

ää Cada componente de una FKCada componente de una FK debe estardebe estardefinido sobre el mismodefinido sobre el mismo dominiodominio que elque elcorrespondientecorrespondiente atributoatributo de la PKde la PK a la quea la quereferenciareferencia

ää La clave Ajena puede ser Simple o CompuestaLa clave Ajena puede ser Simple o Compuestaää El uso de Claves Ajenas facilita a:El uso de Claves Ajenas facilita a:ää Eliminación de la Redundancia: Integridad entreEliminación de la Redundancia: Integridad entre

ficherosficherosää Mecanismo del Modelo Relacional de datos paraMecanismo del Modelo Relacional de datos para

establecerestablecer VÍNCULOS ENTRE RELACIONESVÍNCULOS ENTRE RELACIONES

Page 16: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Mantenimiento de la IntegridadReferencial

Mantenimiento de la IntegridadReferencial

Las operaciones que no satisfacen la Integridad Referencial,Las operaciones que no satisfacen la Integridad Referencial,dejan la BD en undejan la BD en un estado incorrecto.estado incorrecto. EjemploEjemplo

Sea el ambiente de aplicación Hotel: ¿Qué pasaría si seSea el ambiente de aplicación Hotel: ¿Qué pasaría si seeliminara la tupla (501, D, ...) en HABITAC?eliminara la tupla (501, D, ...) en HABITAC?

ää ¿Y si se eliminara la tupla (100, D, ...)?¿Y si se eliminara la tupla (100, D, ...)?

Page 17: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Mantenimiento de la IntegridadReferencialMantenimiento de la IntegridadReferencial

¿Cómo evita el SGBD esos estados incorrectos?¿Cómo evita el SGBD esos estados incorrectos?El SGBD puede...El SGBD puede...ää RechazarRechazar toda operación que pueda provocar un estadotoda operación que pueda provocar un estado

ilegal,ilegal,ää AceptarAceptar (y ejecutar) tales operaciones, pero realizar(y ejecutar) tales operaciones, pero realizar

accionesacciones que restauren la integridad de los datosque restauren la integridad de los datosDiseñador de la BD puede especificar al SGBD:Diseñador de la BD puede especificar al SGBD: AccionesAcciones

de Mantenimiento de la Integridad Referencialde Mantenimiento de la Integridad Referencial paraparaque la BD SIEMPRE alcance un estado final legalque la BD SIEMPRE alcance un estado final legal

Page 18: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Valores NulosValores Nulos

En el mundo real existe...En el mundo real existe...ää Información perdidaInformación perdida fechaNacimientofechaNacimiento

desconocidadesconocidaää Ausencia de información ¿tieneAusencia de información ¿tiene teléfonoteléfono??ää Valores no aplicables a ciertos atributosValores no aplicables a ciertos atributos

fechJubilacfechJubilac a empleado activoa empleado activoää Para representar estas situaciones en losPara representar estas situaciones en los

sistemas de BD se utiliza elsistemas de BD se utiliza el NULONULO ((nullnull))

Page 19: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Valores NulosValores Nulos

ää Si una tupla tiene un atributo que contiene unSi una tupla tiene un atributo que contiene unnulo, significa que elnulo, significa que el valor realvalor real de talde talatributo esatributo es desconocidodesconocido

ää Es posible especificar si un atributo puede oEs posible especificar si un atributo puede ono contener nulo. Nulo no es un valor en síno contener nulo. Nulo no es un valor en símismo, sino un indicador de ausencia demismo, sino un indicador de ausencia deinformación.información.

ää No hay dos nulos iguales (num_telefonoNo hay dos nulos iguales (num_telefonoNULL <> edad NULLNULL <> edad NULL

Page 20: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Implicaciones de los Nulos en laIntegridadImplicaciones de los Nulos en laIntegridad

NULO y Claves Primarias:NULO y Claves Primarias:ää Restricción de Integridad de Entidad:Restricción de Integridad de Entidad: NingúnNingún

atributo componente de una clave primaria puedeatributo componente de una clave primaria puedecontener nulo.contener nulo.

NULO y Claves AjenasNULO y Claves Ajenasää El Modelo Relacional permite nulo como valor deEl Modelo Relacional permite nulo como valor de

clave ajenaclave ajenaää depto = nulldepto = nullààempleados no asignado a ningúnempleados no asignado a ningún

departamentodepartamentoää jefe = nulljefe = nullàà empleados sin jefeempleados sin jefe

Page 21: MODELO RELACIONAL BASE DE DATOS RELACIONALES

3. Acciones de mantenimientode la Integridad Referencial3. Acciones de mantenimientode la Integridad Referencial

R2R2ààR1R1ä Operación: Eliminar una tuplauna tupla tt dede R1R1 que es referenciadaque es referenciada

por otras depor otras de R2R2Acciones posibles:Acciones posibles:ää 1.1. RechazarRechazar la operación (acción por defecto)la operación (acción por defecto)ää 2.2. CascadaCascada. Propagar la eliminación. Propagar la eliminaciónää 3.3. Establecer nulosEstablecer nulos Sólo si la FK deSólo si la FK de R2R2 permite NULOpermite NULO-- Toda tupla de R2 que referencia aToda tupla de R2 que referencia a tt pasa a contener NULL enpasa a contener NULL en

FKFK-- Eliminar la tupla tEliminar la tupla t

Page 22: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Acciones de mantenimientode la Integridad ReferencialAcciones de mantenimientode la Integridad Referencial

Operación: Modificar el valor de la PK de una tupla t deR1 que es referenciada por otras tuplas de R2.Acciones posibles:1. Rechazar la operación (acción por defecto)2. Cascada. Propagar la modificación3. Establecer nulos.Sólo si la FK de R2 permite NULOäToda tupla de R2 que referencia a t pasa acontener NULL en FKäModificar el valor de la PK de t

Page 23: MODELO RELACIONAL BASE DE DATOS RELACIONALES

Continuamos

Doc. Lic. Roberta Mallcu