Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Propsitos
Entender la teora fundamental de Bases de datos y del modelamiento de
datos
Distinguir una relacin normal de una anormal y saber normalizarla
Comprender el significado e interpretacin de un modelo E/R (MER)
Enunciar y explicar las reglas de integridad de las bases de datos
Saber investigar, entender, deducir y plantear un MER
Competencias:
Al concluir el curso el estudiante:
Comprender la teora general de Bases de datos
Comprender el significado de una relacin y del modelo relacional
Disear modelos de datos reconociendo relaciones normales y sus
atributos, as como sus interrelaciones y semntica
Reconocer la integridad de una Base de datos y aplicar sus reglas.
Plantear modelos de datos que satisfagan las expectativas derivadas de los
2
problemas encontrados en la realidad.
Objetivosdelcurso
El estudiante comprender en este primer curso de Bases de datos:
1. La teora fundamental de bases de datos
2. Los conceptos de normalizacin de Bases de datos y las diferentes
formas normales
3. El diseo de Bases de datos segn la normalizacin
4. Los conceptos de modelamiento semntico, correspondencia y
cardinalidad
5. El diseo de Bases de datos segn el modelamiento semntico
6. Los conceptos de integridad de las Bases de datos y la reglas de
integridad
7. Cmo disear y plantear una base de datos para una empresa
especfica.
3
Contenidodelcurso
1.
2.
3.
5.
6.
Modelo relacional
6.1 Nivel conceptual
6.2 Nivel externo o vistas
6.3 Nivel interno
6.4 El lenguaje de datos
6.5 Ejemplo utilizando el lenguaje de datos SQL.
Textos
Bibliografa
1.IntroduccinalasBasesdedatos
1.1DefinicindeunaBasededatos
Una Base de datos es un conjunto de archivos
almacenados de forma integrada y compartida, lo
cual es realizado por un software manejador de bases
de datos conocido como DBMS.
1.2DefinicindeunDBMSysusfunciones
Un DBMS es un software que tiene las siguientes
funciones:
11
Funciones de un DBMS
a.
b.
c.
d.
e.
f.
g.
h.
i.
Datos fsicos
SO
2
DBMS
3
13
1.3TiposdeusuariosdeunaBasededatos
a) El programador de aplicaciones
b) El usuario final
c) El administrador de la Base de datos (DBA)
14
2.NivelesdeunaBasededatos
Nivelexterno
Esquema
externo
Nivelconceptual
Nivelinterno
Esquema
externo
Esquema
externo
Esquema
conceptual
Esquema
interno
15
2.1NivelinternodeunaBasededatos
Est constituido por el conjunto de bloques de disco,
con sus diferentes registros y sus respectivas
direcciones, apuntadores, contadores y datos.
El nivel interno est directamente vinculado con el
sistema operativo (el servidor de archivos) y con el
software driver y tarjeta controladora del disco, por
lo cual es un esquema fsico binario.
16
X
SQL
DBMS
o
chiv
r
a
e
ice)
re d
d
b
n
m
(
no
so
acce
e
d
e
clav
FS
n
N,
,D
, fid
l at
e
r
.
ir
iv a
1
1101
0
0
1
a
01
so l u t
b
a
n
ci
direc
Disco
Driver
bloques
RAM
17
Apuntadores
Hay tres clases de apuntadores:
a)
b)
c)
18
2.2NivelconceptualdeunaBasededatos
Es el que corresponde a la percepcin general de
datos de la organizacin. Por lo tanto, se ve como
todo el conjunto universal de entidades de la
organizacin, vinculadas entre si, cada una con sus
propios atributos.
La apariencia de este nivel es producida por el
ingeniero diseador del sistema, aunque no tiene
existencia fsica sino solo lgica: Por esto es
conocido como modelo conceptual.
19
Entidad 1
Entidad 2
Entidad 3
Entidad 4
Entidad 5
Entidad 6
Modelo conceptual
20
2.3NivelexternodeunaBasededatos
Es el que corresponde a la percepcin de datos que
tienen los usuarios finales de cada rea funcional en
una empresa.
Es una vista o subconjunto del conjunto universal (o
modelo conceptual), que describe nicamente la parte
de los datos de inters para cada usuario y que
tampoco tiene existencia fsica.
Cada vista puede omitir uno o ms registros, atributos
o relaciones del esquema conceptual, o tambin
cambiar su orden.
A diferencia de los otros esquemas, el esquema
21
2.4Mapeodedatos
La existencia de tres niveles impone al DBMS la
necesidad de transformar los datos de un formato a
otro.
As habr dos formatos de transformacin:
Conceptual-interno y conceptual-externo.
Tanto el formato conceptual-interno como el
conceptual-externo opera en los dos sentidos: De lo
conceptual a lo interno y viceversa, y de lo conceptual
a lo externo y viceversa.
22
3.PropiedadesdeunaBasededatos
3.1Independenciadelosdatos.Es la capacidad
de modificar los esquemas interno o conceptual
sin causar cambios en los programas (que usan
esquemas externos).
La independencia entre lo externo y lo interno se
llama Independencia fsica y, entre lo externo y
lo conceptual Independencia lgica.
La independencia lgica ayuda al mantenimiento
de los programas software en la organizacin.
23
25
26
Registro inicial
Tiempo
t=0
T1
Lea cuentas
Lea cuentas
RET = RET + 50
Regrabe cuentas
CON = CON + 100
Regrabe cuentas
Registro final
t=n
29
4. SoftwarecomplementariodeunDBMS
Para poder llevar a cabo su funcin en forma
ptima, un DBMS est complementado con:
4.1 Un administrador de la Base de datos (DBA)
4.2 Un diccionario de datos
4.3 Un lenguaje de datos (ddl, dml, sql).
30
4.1EladministradordelaBasededatos(DBA).
El DBA es el software utilizado por la persona o equipo de
personas responsable de mantener en regla una Base de datos
(BD). Est encargado:
a)
b)
c)
d)
e)
f)
31
4.2Eldiccionariodedatos.
El diccionario de datos es el conjunto de datos que describen la
BD, y contiene:
a) La descripcin de todos los esquemas (externo, conceptual
e interno).
b) La descripcin de todos los campos (o atributos), registros
(o tuplas) y referencias cruzadas entre las tuplas de varios
archivos (tablas).
c) Los cdigos de autorizacin y seguridad para los datos (por
atributos, tuplas, tablas conceptuales, vistas externas, o
ndices internos).
32
4.3LenguajesdelaBasededatos.
Estos lenguajes permiten describir (con ddl), manipular (con
dml) y consultar (con sql) la BD.
Adems proporcionan interfaces con lenguajes de programacin
3gl como Cobol, PL/1, Fortran, C, o Java, ya que los lenguajes de
datos no son de programacin.
Con ddl describimos los esquemas conceptual y externo. El
compilador ddl al compilar estos esquemas produce el
diccionario de datos y tales esquemas.
Con dml nos valemos para insertar tuplas, modificar atributos, o
borrar tuplas de una BD.
Con sql consultamos una BD.
33
34
5.ClasesomodelosdeDBMSs.
Hasta el da de hoy ha habido cuatro clases de DBMS:
Jerrquicos, en Red, Relacionales y de Objetos.
Los dos primeros ya han quedado obsoletos, mientras que el
modelo relacional se mantiene en vigor todava.
Hasta la fecha el modelo de objetos no es ms que una
extensin del modelo relacional, pero an no satisface los
requerimientos de la industria.
El modelo semntico ampla el modelo relacional, y ambos
satisfacen los requerimientos de la industria, aunque no
totalmente.
35
37
38
6.ElmodelorelacionaldeBasesdedatos
El modelo relacional ha evolucionado a partir de lo publicado por
Edgar Frank Codd en 1970.
El modelo relacional no concibe registros individuales ni
archivos individuales como los lenguajes de programacin sino
varias relaciones completas y al mismo tiempo.
Las relaciones del modelo relacional equivalen a los archivos de
los lenguajes de programacin, a las tablas de SQL, a las
entidades del modelo semntico, o a los objetos de los actuales
modelos de objetos.
39
40
41
S
S#
SP
snombre
edo
ciudad
S#
P#
S1 Salazar
20
Londres
S1
P1
300
S2 Jaimes
10
Pars
S1
P2
200
S3 Bernal
30
Pars
S1
P3
400
S4 Corona
20
Londres
S1
P4
200
S5 Aldana
30
Atenas
S1
P5
100
S1
P6
100
S2
P1
300
S2
P2
400
S3
P2
200
S4
P2
200
S4
P4
300
S4
P5
400
P
P#
pnombre
color
peso
ciudad
P1
Tuerca
Rojo
12
Londres
P2
Perno
Verde
17
Pars
P3
Birlo
Azul
17
Roma
P4
Birlo
Rojo
14
Londres
P5
Leva
Azul
12
Pars
P6
Engrane
Rojo
19
Londres
42
cant
43
create table S
(s#
char(2)
not null,
snombre char(10)
not null,
edo
smallint not null,
ciudad
char(10)
not null,
primary key (s#));
create table P
(p#
char(2)
not null,
pnombre char(10)
not null,
color
char(10)
not null,
peso
smallint not null,
ciudad char(10)
not null,
primary key (p#));
create table SP
(s#
char(2)
not null,
p#
char(2)
not null,
cant
integer,
primary key (s#, p#),
foreign key (s#) references S,
foreign key (p#) references P);
44
45
51
54
U
s# snombre
s1 Salazar
p3 birlo
azul
17
Roma
200
p4 birlo
rojo
14
Londres
100
p5 leva
azul
12
Pars
100
p6 engrane
rojo
19
Londres
s2 Jaimes
10
Pars
300
400
p1 tuerca
p2 perno
rojo 12
verde 17
Londres
Pars
s3 Bernal
s4 Corona
30
20
Pars
200
Londres 200
300
p2 perno
p2 perno
p4 birlo
verde 17
verde 17
rojo 14
Pars
Pars
Londres
p5 leva
azul
Pars
400
55
12
56
7.2Laprimeraformanormal(1NF).
Una relacin est en primera forma normal cuando
el valor de sus atributos en cada tupla es atmico.
En otras palabras, en la interseccin de cada tupla con cada
columna, siempre hay exactamente un valor, nunca un conjunto
de valores.
Entonces, para obtener la 1NF es necesario determinar valores
nicos o atmicos en cada interseccin. As, la relacin U queda
transformada en la relacin 1NF que se muestra en la siguiente
diapositiva.
Para las explicaciones subsiguientes, se ha incluido el atributo
fecha, y el estado de s3 se ha cambiado de 30 a 10. Adems, es
necesario repasar los conceptos de claves y dependencia
funcionales.
57
1NF
s#
snombre
edo
ciudad
cant fecha
p#
pnombre
color
peso
s1
Salazar
20
Londres 300
s1
Salazar
20
s1
Salazar
s1
10/5
p1
tuerca
rojo
12
Londres
Londres 200
10/8
p2
perno
verde
17
Pars
20
Londres 400
10/12 p3
birlo
azul
17
Roma
Salazar
20
Londres 200
11/9
p4
birlo
rojo
14
Londres
s1
Salazar
20
Londres 100
11/15 p5
leva
azul
12
Pars
s1
Salazar
20
Londres 100
11/18 p6
engrane
rojo
19
Londres
s2
Jaimes
10
Pars
300
10/7
p1
tuerca
rojo
12
Londres
s2
Jaimes
10
Pars
400
10/10 p2
perno
verde
17
Pars
s3
Bernal
10
Pars
200
10/2
p2
perno
verde
17
Pars
s4
Corona
20
Londres 200
11/3
p2
perno
verde
17
Pars
s4
Corona
20
Londres 300
11/8
p4
birlo
rojo
14
Londres
s4
Corona
20
Londres 400
11/10 p5
leva
azul
12
Pars
58
ciudad
9.3Quesunadependenciafuncional(DF)?
El concepto de dependencia funcional viene de las
matemticas, y significa que si el valor de una variable y
est siempre determinado por el valor de otra variable x,
se dice que y est en funcin de x, y se denota y = f(x).
Entonces, dados dos atributos A y B de una relacin R,
B ser funcionalmente dependiente de A si para cada
valor de A existe un valor de B y solo uno, o sea que al
conocer el valor de A se podr conocer el valor de B.
Esto se denota tambin A B.
A y B deben pertenecer a la misma relacin pues no
tiene sentido la dependencia funcional entre atributos de
diferentes relaciones.
59
DiagramaDFdelarelacin
cant
1NF
snombre
edo
s#
p#
6
7
fecha
8
9
ciudad
pnombre
color
peso
ciudad
62
9.5Lasegundaformanormal(2NF).
S
S#
SP
snombre
edo
ciudad
S#
P#
fecha
cant
S1 Salazar
20 Londres
S1
P1
10/5
300
S2 Jaimes
10 Pars
S1
P2
10/8
200
S3 Bernal
10 Pars
S1
P3
10/12
400
S4 Corona
20 Londres
S1
P4
11/9
200
S5 Aldana
30 Atenas
S1
P5
11/15
100
S1
P6
11/18
100
S2
P1
10/7
300
S2
P2
10/10
400
S3
P2
10/2
200
S4
P2
11/3
200
S4
P4
11/8
300
S4
P5
11/10
400
P
P#
pnombre
color
peso
ciudad
P1
Tuerca
Rojo
12
Londres
P2
Perno
Verde
17
Pars
P3
Birlo
Azul
17
Roma
P4
Birlo
Rojo
14
Londres
P5
Leva
Azul
12
Pars
P6
Engrane
Rojo
19
Londres
68
snombre
s#
p#
fecha
S
1
cant
edo
s#
p#
ciudad
pnombre
7
8
color
peso
ciudad
69
9.7Terceraformanormal(3NF).
S
S#
snombre
ciudad
ciudad
edo
S1
Salazar
Londres
Atenas
30
S2
Jaimes
Pars
Londres
20
S3
Bernal
Pars
Pars
10
S4
Corona
Londres
Roma
50
S5
Aldana
Atenas
s#
2
4
snombre
ciudad
edo
ciudad
74
9.8FormaNormaldeBoyce&Codd(BCNF).
Pero, la 3NF originalmente debida a Codd, no
satisface el caso en el cual una relacin tiene:
a) Varias claves candidatas
b) Claves candidatas compuestas
c) Claves candidatas traslapadas
Por esto, la definicin original de 3NF se sustituy
por una definicin ms adecuada que tuviese en cuenta
el caso abc. Pero como Ronald Fagin ya haba definido
la 4NF, la nueva 3NF no se pudo llamar 4NF sino
Forma Normal de Boyce & Codd o BCNF.
ciudad
snombre
78
n# cc
071
n1
10
3.7
071
n1
11
3.9
071
n1
12
3.5
072
n2
10
3.8
072
n2
13
3.3
80
ce
cc
n#
Diagrama DF de E en 3NF pero no en BCNF
ce
ce
n#
cc
Diagrama de E en BCNF
82
9.9CuartaFormaNormal(4NF).
A veces se presentan en la vida real, relaciones muy
singulares, en las cuales no es posible identificar las
dependencias funcionales convencionales.
Por ejemplo, sea la relacin con los atributos curso,
profesor, texto, por lo cual se puede denominar la
relacin CPT (curso, profesor, texto).
Se puede observar que: Dado un curso, no se puede
saber, ni el profesor, ni el texto, porque un curso puede
ser dictado por varios profesores y utilizar varios textos.
Tambin que, dado un profesor, no se puede saber, ni
el curso, ni el texto, porque un profesor puede dictar
varios cursos, y utilizar varios textos.
83
profesor
Rosas
texto
Mecnica
ptica
Ramos
Mecnica
ptica
Matemticas
Rosas
Mecnica
Vectores
Funciones
84
profesor
texto
Fsica
Rosas
Mecnica
Fsica
Rosas
ptica
Fsica
Ramos
Mecnica
Fsica
Ramos
ptica
Matemticas
Rosas
Mecnica
Matemticas
Rosas
Vectores
Matemticas
Rosas
Funciones
85
Profesor
Curso
Texto
Fsica
Rosas
Fsica
Mecnica
Fsica
Ramos
Fsica
ptica
Matemticas
Rosas
Matemticas
Mecnica
Matemticas
Vectores
Matemticas Funciones
88
89
90
91
92
93
94
10ElModelosemnticoomodeloE/R.
95
Estructura (atributos)
Una entidad puede ser concreta como un cliente, una factura, una
materia, o abstracta como un concepto.
Una entidad se representa por un rectngulo:
97
98
Entidad 1
Entidad 2
Entidad 1
Entidad 1
vnculo
Entidad 2
Entidad 2
entidad n
vnculo
grado n-ario
99
director
100
pedidos
productos
101
Muchas a muchas a muchas (grado tres), etc. Es cuando a cada tupla de una
entidad 1 le corresponde varias tuplas de una entidad 2 y varias tuplas de una
entidad 3, y a cada tupla de la entidad 2 le corresponde varias tuplas de la
entidad 1 y varias tuplas de la entidad 3, y a cada tupla de la entidad 3 le
corresponde varias tuplas de la entidad 1 y varias tuplas de la entidad 2.
L:M:N
clientes
agencias
productos
Trabaja en
oficinas
repventas
Es dirigido
Dirigida por
Es atendido
por
clientes
Tomado por
Es hecho por
pedidos
solicita
productos
104
Trabaja en
oficinas
repventas
Es dirigido
Dirigida por
Es atendido
por
clientes
pedidos
productos
105
oficinas
repventas
Es dirigido
Dirigida por
Es atendido
por
clientes
pedidos
productos
106
(1,N)
(1,1)
1:N
(1,N)
hecho por
Redundante (?)
(1,1)
Es atendido
por
pedidos
repventas
(1,1)
(1,N)
Tomado
por
1:N
Redundante (?)
1:N
clientes
(1,N)
(1,1)
1:N
hecho por
No redundante
(1,1)
Es atendido
por
(0,N)
pedidos
repventas
(1,1)
(1,N)
Tomado
por
No redundante
107
1:N
1:1
(1,1)
(0,1)
(1,1)
1:1
(1,1)
S
S
(0,1)
1:1
(0,1)
SP
P
109
(1,*)
M:1
(1,1)
S
S
M:1
(1,*)
(0,1)
SP
P
S
S
(0,*)
(0,*)
M:1
(0,1)
SP
P
M:1
(1,1)
110
(1,M)
M:N
(1,N)
SP
P
S
S
(0,M)
M:N
(1,M)
SP
P
S
S
(0,M)
M:N
(0,M)
SP
P
111
L:M:N
SPC
P
C
C
112
Trabaja en
(1,1)
(0,1)
(1,N)
oficinas
vendedores
(0,N)
Es dirigido
Es atendido
por
(1,N)
clientes
Tomado por
(1,1)
(1,N)
Es hecho por
(1,N)
pedidos
(0,N)
solicita
(1,N)
productos
113
oficinas
vendedores
lderes
atendido por
Tomado por
clientes
pedidos
directores
solicita
productos
114
repventas
clientes
115
De esta manera, con solo indicar que is a class al crear la tabla personas, y
que is a persona al crear tanto la tabla vendedores como la tabla clientes,
estas tablas (vendedores y clientes) heredaran de la tabla personas todos sus
atributos declarados (como la cdula, los nombres, los apellidos, el telfono, el
celular, la direccin, etc. etc.) sin necesidad de declararlos nuevamente como
atributos en las tablas vendedores y clientes.
Lo anterior se podra rudimentariamente implementar, si el motor no
reconoce herencia, mediante claves forneas en las tablas vendedores y
clientes haciendo referencia a personas.
Para ver la implementacin de la agregacin, analcese el caso de proyectos
en una empresa, desarrollados por diferentes departamentos y en donde cada
departamento puede estar desarrollando ms de un proyecto.
Supngase adems que el departamento financiero no desarrolla proyectos
pero si est encargado del control financiero del desarrollo; no del control de
cada proyecto ni de cada departamento. Para llevar a cabo este control nombra
uno o ms de sus funcionarios para esta tarea.
116
El diagrama E/R para este caso se muestra en la siguiente diapositiva.
funcionarios
controla
proyectos
desarrolla
!?
departamentos
117
funcionarios
controla
proyectos
desarrolla
departamentos
118
controla
proyectos
Proy#
Nombre
Valor
Cedula
Proy#
Dep#
Desde
Hasta
Presupuesto
desarrolla
Proy#
Dep#
Inicio
departamentos
Dep#
Nombre
Telefono
120
121
122
Taller 1.
123
124
125
126
127
carrera
empleado
pertenece
trabajador
salones
profesor
pensum
estudia
estudiante
Ha cursado
cursos
13. Modelo semntico.
128
materias
requisito
saln
profesor
currcula
pensum
estudiante
materias
Ha cursado
cursos
129
requisitos
Pensum
Codi_car
Nomb_car
Cred_car
Codi_car
Codi_mat
Currcula
Estudiante
Codi_est
Nomb_est
Cedu_est
Dire_est
Tele_est
Codi_est
Codi_car
Fecha_ini
Prom_est
Cred_apr
Veces_con
Fecha_con
Profesor
Cursos
Codi_pro
Cedu_pro
Dedi_pro
Cate_pro
Codi_car
Codi_mat
Codi_gru
Codi_pro
Codi_est
Codi_hor
Codi_dia
Codi_sal
Notas
Materias
Codi_mat
Codi_car
Nomb_mat
Cred_mat
Requisitos
Codi_req
Codi_mat
Codi_est
Codi_car
Codi_mat
Nota_mat
Fecha_not
Llave primaria
Llave fornea
Parte de ambas
130
131
2.
3.
Proponga y especifique usted los atributos y claves que debe contener cada
tabla de modo que todas las relaciones sean normales hasta BCNF.
4.
132
11.Integridaddeunabasededatos.
La integridad de las Bases de datos es muy importante porque si sta
no pudiera mantenerse garantizada se desplomara toda la anterior teora
semntico-relacional.
El concepto de integridad conlleva a que la BD debe quedar siempre,
en todo momento y lugar, incorruptible, para lo cual se debe velar por el
estricto cumplimiento de las reglas de integridad.
Existen reglas de integridad especficas y reglas de integridad
generales. Las reglas especficas se refieren a la validez de cada uno de
los valores guardados en la interseccin de cada fila y de cada
columna de cada tabla.
133
11.1Restriccionesdedominio.
Las reglas especficas son conocidas tambin como restricciones de dominio,
ya que limitan los valores posibles que pueden tomar los diferentes atributos de
las entidades.
Por ejemplo, son restricciones de dominio:
Que el cdigo del estudiante sea de diez caracteres y que no pueda ser
ignorado, o sea, char (10) not null.
Que el estado de los proveedores sea un entero entre 1 y 100.
Que los das de la semana deban ser seleccionados de una lista.
Que las notas de los estudiantes sean reales positivos de una cifra entera y
134
otra decimal.
11.2Integridaddelasentidades.
Las reglas de integridad referencial generales, por su lado se subdividen en
dos: Una que se refiere a las claves primarias (la regla 1), y otra que se refiere
a las claves forneas (la regla 2).
Regla 1: Ningn componente de la clave primaria de una tabla puede aceptar
nulos.
11.3Integridadreferencial.
profesor
escuela
137
Cada flecha significa que existe una clave fornea en la entidad de la cual
sale la flecha, que hace referencia a la clave primaria de la entidad a la
cual apunta la flecha.
138
Observe tambin que, una relacin dada puede contener muchas claves
forneas. En general, si en una interrelacin hay n entidades participantes,
la entidad de la interrelacin contendr n claves forneas.
Sean las relaciones R1, R2, , Rn-1, Rn, tal que existe una restriccin
referencial de R1 a R2, otra de R2 a R3, y otra de Rn-1 a Rn
produciendo el diagrama referencial: R1R2 R3 Rn-1 Rn.
139
Pero quin debe tener cuidado al realizar operaciones con las claves
forneas? Lo ideal es que el control est a cargo del DBMS y no del sujeto
programador, aunque ste debe dar al DBMS las indicaciones adecuadas.
As, el DBMS debera entender por si solo, que al cancelar una cuenta
corriente, por ejemplo, los cheques girados posteriormente buscando ser
insertados, deben ser rechazados. O que si un cliente cancela su deuda total,
el DBMS debe eliminar (delete) automticamente y en cascada todas las
facturas pendientes de dicho cliente.
140
En donde el efecto puede ser no action o sea restricted, cascades o set null.
142
Por ejemplo:
create table facturas
(factura# char(5) not null,
fecha
date not null,
valor
number(9) not null,
cedula#
char(10) not null,
primary key factura#,
foreign key (cedula#) references clientes
on deletes cascades
on update cascades);
Commit;
145
suceso disparo
on
condicin
]]