Professional Documents
Culture Documents
MTIG
CONTENIDOS
Tema 2.
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2
4
12
18
19
23
32
Bases de datos
MTIG
2.1.
Etapas de diseo
2. Diseo lgico.
Su objetivo es definir el esquema de la base de datos segn el
modelo que implementa el SGBD objetivo.
Bases de datos
MTIG
3. Diseo fsico.
Su objetivo es definir el esquema fsico de la base de datos de
forma que se den todas las instrucciones para que un DBA pueda
implementar la base de datos sin ninguna ambigedad. Se considera el
rendimiento como un aspecto que no se ha tratado en las etapas
anteriores.
Bases de datos
2.2.
MTIG
Diseo conceptual
2.2.1.
Conceptos
Bases de datos
MTIG
Bases de datos
MTIG
2.2.2.
Los componentes bsicos de los diagramas E-R son los atributos, los
tipos de entidades y los tipos de relaciones.
Alumnos
Nmero
Ciudad
Domicilio
Matrcula
Asignaturas
Bases de datos
2.2.3.
MTIG
Telf.=01234567,
Telf.=01234567,
Ttulo=},
{COD=IS,Ttulo=},
Ttulo=},
{COD=IS,Ttulo=},
Bases de datos
MTIG
2.2.4.
({Cod=MD.},{Edif=Mates,
({Cod=MD.},{Edif=Biolgicas, NumAula=104}) }
Estas relaciones son posibles, hay ms de un curso de primero y por
eso la misma asignatura se imparte en varias aulas. Ahora bien, Don
Bases de datos
MTIG
NombreYApe=Rmulo
Meln,},
{Edif=Mates,
Bases de datos
MTIG
Calle
Apell. y nombre
Nmero
Ciudad
Domicilio
Telfono
COU
Cdigo
Ttulo
Crditos
DNI
Alumnos
Matrcula
Asignaturas
Nota
Supervisa
Supervisor
Supervisado
Profesores
Aulas
Imparte
DNI
Apellidos y nombre
2.2.5.
Domicilio
Telfono
Edificio
Nmero
SUPERVISADO
({DNI=666666,},
{DNI=444444,})
({DNI=000001,},
{DNI=444444,})
10
Bases de datos
MTIG
Personas
R
Nacida
Pases
Personas
R
Nacida
Pases
Bases de datos
MTIG
Alumnos
2.3.
Matrcula
Asignaturas
Diseo lgico
2.3.1.
El modelo relacional
Este modelo fue creado por Codd a principios de los 70 al que dot de
una slida base terica. Actualmente est implementado en la mayora de
los SGBD usados en la empresa. El concepto principal de este modelo es la
relacin o tabla. Es importante no confundir la tabla con las relaciones del
modelo E-R. Aqu las relaciones se aplican tanto a tipos de relaciones como a
tipos de entidades. En este modelo no se distingue entre tipos de entidades y
tipos de relaciones porque la idea es que una relacin o tabla expresa la
relacin entre los tipos de valores que contiene.
A continuacin se introducen los conceptos de este modelo:
Entidad. Igual que en el modelo E-R. Tambin se les llama tuplas o filas
de la relacin.
Por ejemplo, el tipo de entidad Alumnos del modelo E-R del apartado
del diseo conceptual se representara como la siguiente relacin:
Alumnos(DNI, NombreYApellidos, Domicilio, Telfono, COU)
El orden de los atributos en la lista no importa. Lo fijamos porque nos
viene bien para representarlo como tabla, pero cualquier permutacin es
vlida.
12
Bases de datos
MTIG
Clave. Igual que en el modelo E-R. Hay que darse cuenta que en el
modelo relacional todas las tablas deben tener claves, y que algunas
tablas van a representar relaciones del esquema E-R.
{ (01234567Z, Manuel Vzquez Prieto, Calle del Jazmn 7 4 Izq, 9112345678, COU = S), ....}
En el modelo relacional no se representan diagramas del esquema de
la BD. Por el contrario, el esquema relacional se representa por los
conjuntos de entidades como hemos visto antes (nombre de la tabla y entre
parntesis el nombre de sus atributos). Las instancias de una relacin se
representan con tablas, como se muestra en el ejemplo del conjunto de
entidades Alumnos:
DNI
NombreyApellidos
Domicilio
Telfono
COU
01234567Z
9112345678
SI
...
2.3.2.
Para cada tipo de entidad se crea una relacin con el mismo nombre y
conjunto de atributos. Por ejemplo, en el caso de la BD de secretara los tipos
de entidades dan lugar a las siguientes relaciones:
Alumnos(DNI, Apellidos y Nombre, Domicilio, Telfono, COU)
Asignaturas(Cdigo, Ttulo, Crditos)
Profesores(DNI, Apellidos y nombre, Domicilio, Telfono)
Aulas(Edificio, Nmero)
Tipos de relaciones
Para cada tipo de relacin R se crea una relacin que tiene como
atributos:
13
Bases de datos
MTIG
E2
14
Bases de datos
MTIG
Por
ejemplo,
supongamos
que
Hombres(DNI)={1,2},
Mujer(DNI)={3,4}, la relacin Casado(DNIH, DNIM) slo puede
contener {(1,3), (2,4)} o {(1,4), (2,3)} o, en representacin tabular:
Hombres
Mujeres
Casados
Casados
DNI
DNI
DNIH
DNIM
DNIH
DNIM
E2
Pas
Espaa
Espaa
Portugal
E2
15
Bases de datos
MTIG
2.3.3.
Restricciones de integridad
Mujeres
Casados
DNI
DNI
DNIH
DNIM
Incorrecto!
16
Bases de datos
MTIG
2.3.4.
Cuestiones de diseo
Personas
Nacida
Pases
DNI
17
Bases de datos
MTIG
Ausencia de informacin.
Valor desconocido.
2.4.
Diseo fsico
18
Bases de datos
MTIG
2.5.
Restricciones de integridad
Claves.
Cardinalidad de la relacin.
Integridad referencial.
Participacin total.
Dependencias funcionales.
Otras restricciones.
19
Bases de datos
MTIG
2.5.1.
Declaracin de claves.
Disparadores (Triggers).
Nmero de cifras
Nmero de decimales
create domain sueldo-por-hora numeric(4,2)
constraint comprobacin-valor-sueldo check(value 6.00)
Restricciones de existencia
Dentro de las restricciones de los dominios, un tipo especial de
restriccin que se puede aplicar a cualquier dominio es la restriccin de
existencia. Esta restriccin evita la aparicin de valores nulos en las
columnas. Se especifica indicando en la creacin de la tabla cules son los
atributos que no pueden contener valores nulos. De manera
predeterminada, los atributos que formen parte de la clave primaria tienen
esta restriccin impuesta. Para declarar esta restriccin en la definicin de
la tabla se usara NOT NULL despus del nombre del atributo y su dominio.
Restricciones de unicidad
Otro tipo especial de restriccin que se puede aplicar a cualquier
dominio es la restriccin de unicidad. Esta restriccin evita la aparicin de
20
Bases de datos
MTIG
valores duplicados en las columnas (de forma parecida a lo que hace la clave
primaria). Por ejemplo:
Slo se admite una sucursal en cada ciudad.
CREATE TABLE Sucursales
(nombre-sucursal VARCHAR(20),
ciudad-sucursal VARCHAR(20) NOT NULL,
PRIMARY KEY(nombre-sucursal)
UNIQUE (ciudad-sucursal))
2.5.2.
- Restriccin de existencia
- Restriccin de unicidad
Al insertar una tupla es necesario comprobar que haya otra con los
valores de la clave externa igual a los de sus atributos clave.
21
Bases de datos
MTIG
2.5.3.
Dependencias funcionales
Id_empleado NombreE
123A
Ana Almansa
012D
David Daz
789C
Carlos Crespo
DireccinE
c/ Argentales
c/ Daroca
c/ Cruz
Empleados_Centros
Puesto
Salario
Profesor
20.000
Ayudante
10.000
Catedrtico
30.000
Centro
Informtica
Informtica
Empresariales
DireccinC
TelfonoC
c/ Complutense 123
c/ Complutense 123
c/ Corua
789
2.5.4.
Disparadores
22
Bases de datos
MTIG
2.6.
Normalizacin
2.6.1.
Redundancia de datos
23
NombreP,
DireccinP,
Puesto,
Bases de datos
Id_empleado
123A
456B
789C
012D
MTIG
NombreE
Ana Almansa
Bernardo Botn
Carlos Crespo
David Daz
Empleados
DireccinE
Puesto
c/ Argentales Profesor
c/ Barcelona Administrativo
c/ Cruz
Catedrtico
c/ Daroca
Ayudante
NombreC
Informtica
Matemticas
CC. Empresariales
Id_empleado
123A
456B
789C
012D
NombreE
Ana
Almansa
Bernardo
Botn
Carlos
Crespo
David Daz
Centros
DireccinC
Complutense
Complutense
Somosaguas
Salario
20.000
15.000
30.000
10.000
Centro
Informtica
Matemticas
CC. Empresariales
Informtica
Telfono
123
456
789
DireccinE
c/ Argentales
Empleados_Centros
Puesto
Salario Centro
Profesor
20.000 Informtica
DireccinC
Complutense
Telfono
123
c/ Barcelona
Administrativo
15.000 Matemticas
Complutense
456
c/ Cruz
Catedrtico
789
c/ Daroca
Ayudante
30.000 CC.
Somosaguas
Empresariales
10.000 Informtica
Complutense
2.6.2.
Anomalas de actualizacin
24
123
Bases de datos
MTIG
2.6.3.
2.6.4.
25
Bases de datos
MTIG
Centros
DireccinC
Complutense
Complutense
Somosaguas
Telfonos
{123, 321, 213}
{456}
{789, 987}
Telfonos
NombreC
Telfono
Informtica
123
Informtica
321
Informtica
213
Matemticas
456
CC. Empresariales 789
CC. Empresariales 987
Centros
DireccinC
Complutense
Complutense
Complutense
Complutense
Somosaguas
Somosaguas
Telfono
123
321
213
456
789
987
26
Bases de datos
MTIG
DireccinC
Complutense
Complutense
Somosaguas
Telfono1
123
456
789
Telfono2
321
Null
987
Telfono3
213
Null
Null
NombreE,
{Direcciones(Calle,
Ciudad,
2.6.5.
Personal_Proyectos
Id_empleado NmeroP Horas NombreE
123A
P-1
16
Ana Almansa
012D
P-1
8
David Daz
012D
P-2
4
David Daz
DF1
DF2
DF3
27
NombreP
Proyecto 1
Proyecto 1
Proyecto 2
Bases de datos
MTIG
DF1
Horas
PP2
Id_empleado NombreE
DF2
2.6.6.
PP3
NmeroP NombreP
DF3
Empleados_Departamentos
Id_empleado NombreE DireccinE CdigoD NombreD DirectorD
123A
Ana
c/ Argentales DS
Sistemas
999Z
Almansa
012D
David
c/ Daroca
DS
Sistemas
999Z
Daz
DF1
DF2
28
Bases de datos
MTIG
Empleados_Departamentos
Id_empleado NombreE DireccinE CdigoD NombreD DirectorD
123A
Ana
c/ Argentales DS
Sistemas
999Z
Almansa
012D
David
c/ Daroca
DS
Sistemas
999Z
Daz
DF1
DF2
DF3
CdigoD
DF1
CdigoD
DF2
ED2
NombreD
DirectorD
2.6.7.
29
Bases de datos
MTIG
Investigador
111A
222B
333C
444D
444D
Proyectos
Proyecto
Proyecto 1
Proyecto 1
Proyecto 1
Proyecto 2
Proyecto 1
IPrincipal
123A
012D
123A
789C
123A
DF1
DF2
En este ejemplo, que cumple la 3NF, hay una anomala que se debera
poder evitar, porque si no se vigila la dependencia funcional DF2 se podra
aadir una tupla de manera que una persona fuese investigadora principal
de dos proyectos.
La descomposicin
posibilidades:
del
P1a
Investigador IPrincipal
esquema
inmediata,
IPrincipal
Proyecto
P2b
Investigador
Proyecto
IPrincipal
P3b
Investigador
P3a
IPrincipal
es
hay
tres
P1b
Investigador
Proyecto
P2a
Proyecto
no
30
Bases de datos
MTIG
P1a
Investigador IPrincipal
111A
123A
222B
012D
333C
123A
444D
123A
444D
789C
Investigador
111A
222B
333C
444D
444D
444D
444D
P1b
Investigador
Proyecto
111A
Proyecto 1
222B
Proyecto 1
333C
Proyecto 1
444D
Proyecto 1
444D
Proyecto 2
P1a ? P1b
Proyecto
Proyecto 1
Proyecto 1
Proyecto 1
Proyecto 2
Proyecto 2
Proyecto 1
Proyecto 1
IPrincipal
123A
012D
123A
123A
789C
123A
789C
2.6.8.
31
Bases de datos
MTIG
2.7.
Normativa de denominacin
2.7.1.
Identificadores
2.7.2.
Tablas
Bases de datos
MTIG
puede escribir un identificador con los dos nombres de las tablas, como
PersonasTelfonos.
Reglas bsicas de denominacin de tablas:
2.7.3.
Restricciones
UN para la de unicidad.
33
Bases de datos
MTIG
nmero
telefnico,
por
ejemplo,
CO_Mdicos_FormatoCdigo.
2.7.4.
podra
tener
este
nombre:
Controles
Cada tipo de control se debera denominar con una indicacin del tipo
de control, anteponiendo a un nombre descriptor un prefijo que indique el
tipo, como se propone en la siguiente tabla.
Control
Prefijo
Ejemplo
Cuadro de texto
txt
txtEntrada
lbl
lblEtiqueta
cmb
cmbProvincias
but
butCancelar
fra
fraOperaciones
(marcos)
Botn de opcin
opt
optCubo
Botn de
seleccin
chk
Lista
lst
chkVerde
2.7.5.
Variables
Prefijo
Ejemplo
Byte
byt
bytEdad
Boolean
boo
booCasado
34
Bases de datos
2.7.6.
MTIG
Integer
int
intPersonas
Long
lng
lngLlamadas
Single
sgl
sglRaz
Double
dbl
dblSuperficie
Currency
cur
curEuros
Date
dat
datFecha
Object
obj
objObjeto
String
str
strNombre
Variant
var
varElemento
Prefijo
Ejemplo
Tabla
tbl
tblPacientes
frm
frmMdicos
rep
repPacientes
qry
qryGastoTrimestral
35