Escolar Documentos
Profissional Documentos
Cultura Documentos
Fundamentos de
base de datos
Por:
Lpez Romero Andrs
8CV3
Contenido
1. Relacin Uno a Uno ........................................................................................................................4
1.1 Diagrama conceptual................................................................................................................4
1.2 Diagrama de objetos ................................................................................................................4
1.3 Frases .......................................................................................................................................4
1.4 Diseo de la base de datos .......................................................................................................4
1.5 Ejemplo de las tablas ................................................................................................................5
1.6 Instrucciones para crear la base de datos ................................................................................5
1.7 Instrucciones para armar la red ................................................................................................5
2. Relacin Uno a Muchos ..................................................................................................................7
2.1 Diagrama conceptual................................................................................................................7
2.2 Diagrama de objetos ................................................................................................................7
2.3 Frases .......................................................................................................................................8
2.4 Diseo de la base de datos .......................................................................................................8
2.5 Ejemplo de tablas .....................................................................................................................9
2.6 Instrucciones para crear las tablas ...........................................................................................9
2.7 Instrucciones para armar la red ................................................................................................9
3. Relacin Muchos a Muchos ..........................................................................................................11
3.1 Diagrama conceptual..............................................................................................................11
3.2 Diagrama de objetos ..............................................................................................................11
Consultorio
LaboratoristaClinico
clave: String
nombre: String
Tiene
1..1
seAsignaA
0..1
tieneAsignado
clave: String
ubicacion: String
consultorioA1: Consultorio
seAsignaA
tieneAsignado
ana: LaboratoristaClinico
clave = 02
nombre = Ana
consultorioB1: Consultorio
seAsignaA
tieneAsignado
juan: LaboratoristaClinico
clave = 03
nombre = Juan
clave = cA1
ubicacion = Baracteriologia
clave = cB1
ubicacion = Hematologia
consultorioC1: Consultorio
seAsignaA
1.3 Frases
Un laboratorista clnico tiene asignado un consultorio
Un consultorio se asigna a un laboratorista clnico
PK
0..1
FK
+ <<PK>> con_clave_pk( )
+<<FK>> con_ seAsignaA_fk( )
4
LaboratoristaClinico
Consultorio
lab_clave
01
02
03
con_clave
cA01
cB01
cC01
lab_nombre
Pedro
Ana
Juan
con_ubicacion
Baracteriologia
Hematologia
Patologia
seAsignaA _lab_clave
01
02
03
/* UPDATE */
/* A Ana le quitamos el laboratorio y se lo asignamos a un nuevo laboratorista */
INSERT INTO LaboratoristaClinico VALUES ('04', 'Alberto');
UPDATE Consultorio SET seAsignaA_lab_clave='04' WHERE
seAsignaA_lab_clave='02';
/* DELETE */
/* Se borra a Ana */
DELETE FROM LaboratoristaClinico WHERE lab_clave = '02';
/* SELECT */
SELECT lab_clave, lab_nombre, con_clave, con_ubicacion FROM
LaboratoristaClinico, Consultorio WHERE LaboratoristaClinico.lab_clave =
Consultorio.seAsignaA_lab_clave;
Computadora
Pertenece
1..1
perteneceA
0..*
constaDe
clave: String
marca: String
procesador: String
salaOriente:LaboratorioDeComputo
clave = ldc-ori
nombre = Sala Oriente
clave = ipn-com01
marca = DELL
procesador = Core i5
ipn-com02:Computadora
clave = ipn-com02
marca = Acer
procesador = Core i7
ipn-com03:Computadora
clave = ipn-com03
marca = HP
procesador = Itanium
ipn-com04:Computadora
clave = ipn-com04
marca = Lenovo
procesador = Core 2 Duo
salaPoniente:LaboratorioDeComputo
clave = ldc-pon
nombre = Sala Poniente
ipn-com05:Computadora
clave = ipn-com05
marca = Toshiba
procesador = Core i3
ipn-com06:Computadora
clave = ipn-com06
marca = Lanix
procesador = Core 2 Quad
2.3 Frases
Una computadora pertenece a un laboratorio de cmputo
Un laboratorio cmputo consta de varias computadoras
LaboratorioDeComputo
PK ldc_clave: CHAR(7)
ldc_nombre: VARCHAR(50)
+<<PK>> ldc_pk( )
Computadora
1..1
com_marca
com_procesador
perteneceA_ldc_clave
LaboratorioDeComputo
ipn-com01
ipn-com02
ipn-com03
ipn-com04
ipn-com05
ipn-com06
DELL
Acer
HP
Lenovo
Toshiba
Lanix
Core i5
Core i7
Itanuim
Core 2 Duo
Core i3
Core 2 Quad
ldc-ori
ldc-ori
ldc-ori
ldc-pon
ldc-pon
ldc-pon
ldc_clave
ldc_nombre
ldc-ori
Sala Oriente
ldc-pon
Sala Poniente
/* UPDATE */
/* Pasamos la computadora ipn-com04 a la Sala Oriente */
UPDATE Computadora SET pertenceA_ldc_clave = 'ldc-ori' WHERE
com_clave='ipn-com04';
/* DELETE */
/* Eliminamos la computadora ipn-com03 por presentar demasiadas fallas */
DELETE FROM Computadora where com_clave = 'ipn-com03';
/* SELECT */
SELECT com_clave, com_marca, com_procesador, ldc_clave, ldc_nombre FROM
LaboratorioDeComputo, Computadora WHERE LaboratorioDeComputo.ldc_clave =
Computadora.pertenceA_ldc_clave;
10
Libro
isbn: String
titulo: String
Autor
0..*
escribe
Escribe
0..*
escritoPor
registro: String
nombre: String
luis: Autor
jsf: Libro
registro = 01
nombre = Luis
jose: Autor
registro = 02
nombre = Jose
isbn = 9700000001
titulo: = Java Server Faces
csharp: Libro
isbn = 9700000002
titulo: = Microsoft C#
francisco: Autor
registro = 03
nombre = Francisco
3.3 Frases
Un autor escribe varios libros
Un libro es escrito por varios autores
11
Libro
Autor
PK lib_isbn: CHAR(10)
lib_titulo: VARCHAR(50)
PK aut_registro: VARCHAR(2)
aut_nombre: VARCHAR(50)
+<<PK>> lib_pk()
+<<PK>> aut_pk()
0..*
0..*
LibroAutor
FK
FK
lib_isbn: CHAR(10)
aut_registro: VARCHAR(2)
+<<FK>> libaut_lib_fk( )
+<<FK>>libaut_aut_fk( )
Libro
lib_isbn
lib_titulo
9700000001 Java Server Faces
9700000002 Microsoft C#
LibroAutor
lib_isbn
9700000001
9700000001
9700000002
9700000001
Autor
aut_registro
01
03
02
03
aut_registro
01
02
03
aut_nombre
Luis
Jose
Francisco
12
13
/* UPDATE */
/* Se actualiza la version del jsf */
UPDATE Libro SET lib_titulo='Java Server Faces 2.2' WHERE
lib_isbn='9700000001';
/* DELETE */
/* Francisco se retira del libro Microsoft C# */
DELETE FROM LibroAutor WHERE lib_isbn='9700000002' AND aut_registro='03';
/* SELECT */
SELECT Libro.lib_titulo, Autor.aut_nombre FROM Libro, Autor, LibroAutor
WHERE Libro.lib_isbn=LibroAutor.lib_isbn AND
Autor.aut_registro=LibroAutor.aut_registro ORDER BY Libro.lib_titulo;
14
4. Herencia
4.1 Diagrama conceptual
Luchador
registro: int
nombre: String
Boxeador
Karateca
asaltos: int
categoriaPeso: String
colorCinta: String
david: Karateca
luis:Boxeador
registro = 100
nombre = Yahir
registro = 101
nombre = David
colorCinta = blanca
registro = 102
nombre = Luis
asaltos = 10
categoriaPeso = pluma
4.3 Frases
Todo luchador puede ser un Boxeador o Karateca
Todo Karateca es un Luchador
Todo Boxeador es un Luchador
15
Luchador
PK luc_registro: INTEGER
luc_nombre: VARCHAR(50)
+<<PK>> luc_pk( )
Karateca
Boxeador
luc_registro: INTEGER
krt_color_cinta: VARCHAR(8)
luc_registro: INTEGER
box_asaltos: INTEGER
box_categoria_peso: VARCHAR(12)
+ <<PK>> krt_pk( )
+<<FK>> krt_luc_pk( )
+<<PK>>box_pk( )
+<<FK>>box_luc_fk( )
luc_nombre
Yahir
David
Luis
Boxeador
Karateca
luc_registro
101
krt_color_cinta
blanca
luc_registro
102
box_asaltos
10
box_categoria_peso
pluma
16
17
/* Consulta de la tabla
Luchadores */
/* UPDATE */
/* David entrena mucho y se convierte en cinta negra */
UPDATE Karateca SET krt_color_cinta='negra' WHERE luc_registro=101;
18