Vamos a estudiar en el ejemplo siguiente cual sería la estructura de una base de datos que gestionara los ingresos de pacientes en un hospital.
Como hemos dicho es conveniente dividir la base de datos en varias tablas. La primera tabla de nombre Pacientes contendrá los datos de los pacientes ingresados en el hospital. Comenzaremos definiendo los campos que componen la tabla:
Seguidamente se muestran los campos y tipos de datos de la tabla pacientes.
Definitivamente los campos y tipos de datos incluidos en la tabla serían los siguientes:
|
|
|
Se requiere un carácter de texto (o espacio en blanco) |
|
No se requiere un carácter de texto |
|
Poner todos los caracteres en minúscula |
|
Poner todos los caracteres en mayúscula |
Nombre del campo | Tipo campo | Descripción |
Número de la Seguridad Social | Texto | Número de afiliación del paciente a la Seguridad Social |
Nombre del paciente | Texto | Nombre del paciente ingresado |
Apellidos del paciente | Texto | Apellidos del paciente ingresado |
Hombre | Sí/No | Indicar sexo del paciente |
Mujer | Sí/No | Indicar sexo del paciente |
Domicilio habitual | Texto | Domicilio: calle, número y planta. |
Población | Texto | Municipio del domicilio habitual del paciente |
Provincia | Texto | Provincia del domicilio habitual |
Código Postal | Texto | Código Postal del municipio |
Número de teléfono | Texto | Teléfono de contacto |
Número de historial clínico* | Texto | Número del historial clínico del paciente |
Observaciones | Memo | Datos de interés referentes al paciente |
Podemos también asignar un tamaño a cada uno de los campos dependiendo del número de caracteres que tengan los datos que vayamos a introducir, así como algún formato o máscara de entrada utilizando los símbolos que se explican más adelante.
Además crearemos dos tablas más, una en la que reflejaremos los ingresos de cada paciente en
el centro (Tabla Ingresos) y otra en la que llevaremos un fichero
de los médicos del centro (Tabla Médicos).
|
|
|
|
Código de identificación del médico * | Texto | Código de identificación del médico responsable | 4 |
Nombre | Texto | Nombre del médico responsable | 25 |
Apellidos | Texto | Apellidos del médico responsable | 50 |
Especialidad | Texto | Especialidad del médico | 25 |
Número de colegiado | Texto | Número de colegiado del médico | 5 |
Cargo | Texto | Cargo que ocupa en el hospital | 20 |
Observaciones | Memo | Datos referentes al médico |
Nota: Estableceremos el código de identificación del médico de manera que se nos presente
en la hoja de datos siempre en mayúsculas.
|
|
|
|
Número de historial clínico | Texto | Número de historial clínico del paciente. | 4 |
Procedencia (con P10) | Sí/No | Enviado por el médico de cabecera (Sí/No) | |
Fecha de ingreso | Fecha /Hora | Fecha de ingreso en el hospital | |
Código de identificación del médico | Texto | Código de identificación del médico responsable | 4 |
Número de planta | Texto | Número de planta en la que se encuentra ingresado. | 2 |
Número de cama | Texto | Número de cama en la que se encuentra ingresado. | 4 |
Observaciones | Memo | Datos referentes al ingreso. |
Nota: Estableceremos el código de identificación del médico de manera que se nos presente en la hoja de datos siempre en mayúsculas.
Definiremos a continuación la clave principal de las tablas creadas. La clave principal desempeña tres funciones:
En la tabla Médicos el campo Código de identificación del médico, será el elegido como campo clave principal, y en la tabla Ingresos, al no poder elegir los campos Código de identificación del médico y Número de historial clínico por ser claves de otras tablas, cuando Access pregunte si queremos establecer una clave principal, elegiremos Sí, nos creará automáticamente un nuevo campo llamado ID de tipo autonumérico.
La relación de tablas y claves principales se muestra en la relación siguiente:
|
|
Pacientes | Número de historial clínico |
Médicos | Código de identificación del médico |
Pacientes | ID (Autonumérico) |
Para definir las relaciones entre las tablas debe existir un campo común en cada una de las tablas relacionadas. Cuando la relación definida entre las tablas es de uno a varios el campo común de la primera tabla debe estar definido como clave principal.
Asimismo hay que señalar que los tipos de datos y las propiedades de los campos que relacionan tablasdeben ser iguales. La propiedad Exigir integridad referencial obliga a que los datos de la segunda tabla deben estar relacionados con algunos datos de la primera tabla.
|
|
|
Entre Pacientes y Médicos | Varios a varios | |
Entre Pacientes e Ingresos | Uno a varios | Número de historial clínico |
Entre Médicos e Ingresos | Uno a varios | Código de id. del médico |
Los datos que introduciremos se relacionan en la siguiente página.
|
|
|
|
|
|
|
|
|
|
José Antonio | Pérez Gómez |
1/12/45
|
Sí
|
No
|
45,369,569 | Ronda Norte, nº 10 | Madrid | Madrid | 1 |
Ana María | Velasco Sánchez |
7/10/68
|
No
|
Sí
|
25,345,878 | Alonso Espejo, nº 4 | Espinardo | Murcia | 2 |
Víctor | García Montoya |
5/05/33
|
Sí
|
No
|
25,698,745 | Juan Carlos I, nº 23 | Alcantarilla | Murcia | 3 |
Isabel | García Martínez |
8/01/83
|
No
|
Sí
|
33,698,569 | Gran Vía, 23 | Novelda | Alicante | 4 |
Juan | Pérez Cayuela |
5/04/54
|
Sí
|
No
|
69,825,645 | Av. López Mayor, 43 | Alicante | Alicante | 5 |
|
|
|
|
|
|
|
|
AMG1 | Alejandro | Martí Jiménez | Medicina General | 2354 | Adjunto | ||
FPO1 | Francisco | Palacios Ortega | Intensivos | 1234 | Jefe de Sección | ||
MRSN | María Rosa | Sánchez Navarro | Análisis Clínicos | 1214 | Adjunto | ||
MSM1 | Manuel | Samaniego Muñoz | Pediatría | 1045 | Jefe de Planta |
|
|
|
|
|
|
|
|
|
Observ. |
1
|
3 |
Sí
|
1/02/2004
|
MSM1 | 1 | 603 | Neumonía. |
36 €
|
|
2
|
2 |
No
|
12/04/2004
|
MRSN | 3 | 312 | Insuficiencia renal |
180 €
|
|
3
|
4 |
No
|
23/05/2004
|
AMG1 | 3 | 105 | Fiebres altas |
30 €
|
|
4
|
3 |
Sí
|
10/02/2004
|
MRSN | 2 | 202 | Gastroenteritis |
30 €
|
|
5
|
1 |
Sí
|
1/02/2004
|
AMG1 | 3 | 304 | Neumonía |
36 €
|
|
6
|
3 |
Sí
|
30/08/2004
|
MSM1 | 1 | 402 | Gastroenteritis |
110 €
|
|
7
|
5 |
Sí
|
12/04/2004
|
MRSN | 3 | 301 | Insuficiencia renal |
1200 €
|
|
8
|
2 |
No
|
8/06/2004
|
FPO1 | 1 | 104 | Gastroenteritis |
530 €
|
|
9
|
1 |
Sí
|
11/10/2003
|
FPO1 | 1 | 105 | Infarto |
3250 €
|
|
10
|
2 |
Sí
|
11/10/2003
|
AMG1 | 3 | 303 | Gastroenteritis |
370 €
|
|
11
|
4 |
No
|
8/06/2004
|
MRSN | 2 | 212 | Insuficiencia renal |
168 €
|
|
12
|
5 |
Sí
|
3/03/2004
|
AMG1 | 3 | 310 | Infarto |
2200 €
|
|
13
|
5 |
Sí
|
30/03/2004
|
FPO1 | 1 | 101 | Gastroenteritis |
180 €
|
|
14
|
3 |
Sí
|
13/02/2004
|
FPO1 | 1 | 103 | Infarto |
300 €
|
|
15
|
1 |
Sí
|
21/09/2003
|
FPO1 | 1 | 102 | Neumonía |
300 €
|