BD Relacional
description
Transcript of BD Relacional
ModeloRelacional
Características Modelo
� Sencillo: construido a partir de relaciones
� Uniforme� Soporte matemático
� Principio de independencia mantenido� LDD, LMD
� Propuesto por Codd(1970)
Conceptos Básicos
� Relaciones� Dominios y atributos� Restricciones de Integridad� Valor Null� Esquemas Relacionales
Conceptos Básicos
� Relaciones� Estructura básica� Representación: tabla
� Atributos� Propiedades de relaciones� Representación: columnas
Conceptos Básicos
� Dominios� Conjunto de valores� Atributos asociados con dominios
� Tupla� Ejemplar de una relación� Representación: filas
Un ejemplo de una relación
atributos(o columnas)
0807689078989907882220678111
id_estudianteid_estudiante
Luis GómezMaría RuizJose CordobaLuis Marin
Nombre_estud
3.54.13.24.0
Promedio
estudiante
tuplas(o filas)
Dominios
� Conjunto de valores atómicos� Asociado con un nombre� Valores del mismo tipo� Definidos por extensión o comprensión
Atributos
� Propiedades de relaciones� Asociado con un nombre� Asociado a una relación� Valores del mismo tipo� Valores tomados de un dominio
Tipos de Atributos� Cada atributo de una relación tiene un
nombre� El conjunto de valores permitidos de un
atributo es su dominio
� Valores atributos atómicos (no se puedendescomponer)� Ej. Valor atributo número de cuenta no
descompuesto en conjunto de números� Dominio atómico: elementos atómicos
� null valor especial de cualquier dominio
Relaciones
� Definidas matemáticamente� Compuesta por
• nombre de relación, • conjunto de atributos Ai
• dominios asociados a atributos
Definición formal
Dados conjuntos D1, D2, …. Dn una relación r esconjunto de
D1 x D2 x … x Dn
Una relación es un conjunto de n-tuplas
(a1, a2, …, an) donde cada ai ∈ Di
Ejemplo
� Estudiantes = {e1,e2,e3, e4, …}
� Profesores = {p1, p2, p3, …}
� Asignaturas = {MDI, MDII, BD, SOFT,....}
r = { (e1,p1,MDI), (e1,p3,BD), (e3, p2, MDI),
(e2, p3, BD) } es una relación definida sobreEstudiantes x Profesores x Asignaturas
Relaciones:descripción
� Nombre asociado� Cabecera: pares (atributo, dominio)� Esquema: Nombre y cabecera� Cuerpo: conjunto de tuplas
Esquemas vs. Instancias
Esquemas de Relación
Definidos a partir de atributos A1, A2, …, An
R = (A1, A2, …, An ) es un esquema de relación
Esquema_Estudiante = (IdId--estudianteestudiante, Nombre, Promedio )
Instancias de Relación� Valores actuales (instancia de relación) de una
relación especificados en tabla
� Un elemento t de r es una tupla, fila de la tabla
� Conjunto de tuplas r = {t1, t2,..., tn} donde cada
ti = (x1, x2,... xm) xi ∈ Di
estudiante
0807689078989907882220678111
id_estudiante
Luis GómezMaría RuizJose CordobaLuis Marin
Nombre_estud
3.54.13.24.0
Promedio
atributos(o columnas)
tuplas(o filas)
Relaciones sin orden
orden de tuplas irrelevante
3.5Jorge Arbelaez0807685
4.0Luis Marin0678111
3.2Jose Cordoba0788222
4.1María Ruiz0789899
3.5Luis Gómez0807689
PromedioNombreId-estudiante
Base de Datos� Conjunto finito de relaciones {Ri}
� Información organización almacenada en relaciones
estudiantes : almacena información de estudianteasignaturas : almacena información de asignaturasprofesores : almacena información de profesores
Base de Datos
� Relaciones
� Con nombre asignado
� Persistentes (de base, vistas materializadas)
� Temporales (Definidas por el usuario, vistas temporales)
� Sin nombre
� Temporales : resultado consulta
Relación profesor
M.Sc.SaludAuxiliarJose Rubio2223344
M.Sc.SaludAsociadoCarmen Suarez6666666
Ph.D.IngenieríaTitularLuisa Vargas3123434
M.A.ArtesAuxiliarCarlos Cárdenas4554551
M. Sc.CienciasAsociadoCecilia Múnera3434343
Ph.D.IngenieríaTitularJuan Mejia3456777
último títulofacultadcategoríanombreccééduladula
Relación Asignatura
ProfesionalFund.4Cine y Arte2223344
DoctoradoElectiva6Fundamentos BD7508702
TecnológicoElectiva3Inglés50890000
TecnológicoElectiva3Cálculo7800034
DoctoradoFund.6Investigación I7000002
ProfesionalFund.3Matemáticas 17500098
NiveltipoCred.nombreccóódigodigo
Restricciones
� Del Modelo de Datos� Relación: conjunto conjunto � No par de tuplas iguales: requisito Llave primaria� Orden tuplas no significativo� Orden de atributos no significativo� Atributos con un único valor� Atributos que integran llave primaria no nulos:
integridadintegridad entidadentidad
Llaves ( Key )Sea K ⊆ R
K es una superllavesuperllave de R si los valores de K identifican de manera única cualquiertupla de una relación r(R)
� Ejemplo: {cédula, nombre} y
{cédula}
son superllaves de Profesor.
Llaves (Cont.)
� K es una llavellave candidatacandidata si K es minimal{cédula} es llave candidata para Profesor
� Es superllave
� Ninguno de sus subconjuntos es una superllave
�� LlaveLlave PrimariaPrimaria: llave candidata escogida comoidentificador de tuplas en una relación
� Escoger atributo cuyo valor nunca o rara vez cambie• email es único pero puede cambiar
Llaves foráneas
� Esquema de relación conteniendo atributo llaveprimaria de otra relación: LlaveLlave ForFor ááneanea
Aributo Cédula de Profesor es llave foráneade Programación
� Solo los valores que aparecen para la llaveprimaria en la relacirelaci óónn referentereferente puedenaparecer como valores de llave foránea en la relación referenciadareferenciada .
Llaves Foráneas
Estudiante ( Id_estudId_estud, cédula, nombre, promedio, cod_programa)
Programas (cod_programacod_programa, nombre, id_director, totalcréditos)
Profesores (id_profid_prof, nombre, categoría, titulo,...)
PK
FK
CK
PK
FK
PK
Valores Nulos (Null)� Mecanismo representación información
� Desconocida� Inaplicable� No disponible� Inexistente� ...
� Necesaria en el BD� Creación de tuplas con valores desconocidos (pago
préstamo)� Adición atributos a relación existente� Atributos no aplicables (editorial articulo)
Esquema Relación: Definición
R ⟨⟨⟨⟨ A:D, I ⟩⟩⟩⟩
R: es un nombre de relación
A: lista de atributosD: dominios asociados a los atributos
I: restricciones de integridad sobre atributos y tuplas de una relación
Esquema BDR: Definición
E ⟨⟨⟨⟨ {Ri}, {Ii}⟩⟩⟩⟩
E: nombre esquema relacional
{Ri}: conjunto de esquemas de relación
{Ii} : conjunto de restricciones de integridad
Del Modelo E-R al Relacional
Transformación E-R a MR
� E-R � no soportado por SGBD� Transformación a modelo datos soportado SGBD
� Transformación� No-determinista
• Mas de una forma de representar aspectos E-R en MR• Aspectos MR no representados en E-R
� Reglas de transformación
Conjunto entidad
relación (tabla)
Profesor
cédula Nombre categoría
AuxiliarYT3242424
titularNN5454545
categoríanombreccééduladula
ProfesorProfesor
Conjunto relación
tabla
331-2026
331-2075
aula
Jueves 14-17750001M3242424
Martes 8-10750033M5454545
horariocódigoccééduladula
ProgramaciProgramaci óónn
ProfesorProgram Asignatura
Horario Aula
cédula Nombre
categoría
Código Nombre
Atributos de conjunto relación
Atributos de relación o tabla son:� Llaves de cada entidad participante
(como llaves foráneas)
• Conforman una superllave para la relación
� Todos los Atributos descriptivos
Proceso de Transformación
Etapas
Paso 1� Por cada entidad ‘fuerte’ en el modelo
ER crear una relación base con unacolumna por cada atributo simple de la entidad.
� El atributo llave para la entidad es la llave primaria de la relación.
Ejemplo
EmpleadoEmpNo
Salario Comision
Fech_despNombre
Cargo
EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comision Number(7,2)Fech_desp Date
Emp PK
Entidades Fuertes
Depto
DeptNo
Edificio
Nombre
DeptNo Number(2)Nombre Varchar2(14)Edificio Varchar2(13)
Dept PK
Etapas
Paso 2Por cada entidad ‘débil’, crear una relaciónconsistiendo de todos los atributos simples de esa entidad e incluir columnas para lasllaves primarias de las entidades de lasque dependen
Ejemplo
Préstamo
Noprestamo Char(8)Nopago Number(4)Fecha DateCantidad Number(9,2)
Pagos Llave primariacompuesta
PagosFecha
cantidadNoPrestamo NoPago
Discriminador
Etapas
Paso 3Cuando dos entidades participan en unarelación 1-m, la relación representando la entidad con la cardinalidad m(muchos) debe tener una columna para la llaveforánea representando esta relación.
Ejemplo
Dept
D#
EmpTrabaja en
Asignado E#
EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comision Number(7,2)Fech-desp DateDeptNo Number(2)
Emp
Llave Foránea
Como un empleado ‘debe’ trabajar en un departamento, la columna DeptNo en la relación Emp (tabla) no puede ser NULL !
Ejemplo
EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comis Number(7,2)Fech-desp DateDeptNo Number(2)
Emp
Llave foránea
Como un empleado ‘podria no’ trabajar en un departamento, la columna DeptNo en la relación Emp(tabla) puede ser NULL !
Dept
D#
EmpTrabaja en
Asignado E#
Etapas
Paso 4Cuando dos entidades participen en unarelación (1-1), una columna de llave foránease debe incluir en la relación que representauna de estas entidades.
Ejemplo
Emp
E#
ID TarjetaPertenece a
TieneID#
EmpNo Number(6)Nombre Varchar2(10)Direcc Varchar2(200)DOB DateIDNo Char(10)
Emp
Llave Foránea
IDNo Char(10) Desde DateExpira Date EmpNo Number(6)
ID Tarjeta
Llave Foránea
Una de las dos
Paso 5Cuando dos entidades participan en unarelación m:m, entonces una relación se debe crear consistiendo de llaves foráneasprovenientes de las dos relaciones querepresentan a las entidades participantes.
Etapas
Ejemplo
Persona
P#
CarroConducido por
Conduce C#
PersonNo Number(6)CarroNo Char(7)
Persona-CarroLlave Foránea
Person
P#
CarC#
Person-Car
P#,C#
Llave Foránea
Paso 6Cuando una entidad tenga un atributomultivaluado, crear una relación con unacolumna para la llave foránea de la relación que representa la entidad y unacolumna para el atributo multivaluado.
Etapas
LenguajeLenguaje
Ejemplo
Programador
EmpNo
Lenguaje
Nombre
EmpNo Number(2)Nombre Varchar2(14)
Programador Llave primaria
EmpNo Number(2)Lenguaje Varchar2(20)
Prog-Leng Llave primariacompuesta
Etapas
Paso 7Cuando más de dos entidades participanen una relación, se debe crear una relaciónconsistiendo de llaves foráneas de aquellasrelaciones representando las entidadesparticipantes en la relación
Ejemplo
Encuentro
EncuentroNo
JugadorJugador No
falta
faltaNo
registro
EncuentroNo Number(4)JugadorNo Number(6)faltaNo Number(3)Fecha Date
registroLlave Primariacompuesta
Sub-tipoPara sub-tipos, crear relaciones separadaspor cada subtipo consistiendo de losatributos propios del subtipo. Incluir comollave foránea la superllave que actúa comollave primaria del super-tipo, que juega el papel de llave primaria del sub-tipo.
Crear una relación separada para el supertipo
Etapas
Ejemplo
EmpleadoNoNombreDirección
Empleado
EMPLEADOEmpleado NoNombreDirección
SECRETARIAVel_digitar
TECNICOGrado
INGENIEROTipo
EmpleadoNovelocidad
Secretaria
EmpleadoNoGrado
Técnico
EmpleadoNoTipo
Ingeniero
Etapas
Paso 8 – Opción BPara sub-tipos, crear relaciones separadaspor cada subtipo consistiendo de todos losatributos del supertipo, y todos aquellosque son propios de un sub-tipo dado. La llave primaria del super-tipo es la llaveprimaria de cada subtipo
No crear una relación para el supertipo!
Ejemplo
VehículoeNoLicenciaNoPrecioNodepuestos
Carro
VEHICULOVehiculo NoLicencia NoPrecio
CARRONo de puestos
CAMIONNo de ejeTonelaje
Camión VehículoNoLicenciaNoPrecioNodeEjesTonelaje