Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Ciudad Real)
Fecha: 6-4-2000
INDICE:
1.- Diseo de la Base de Datos
1.1.- Introduccin al Diseo de la Base de Datos.
1.2.- Objetivos del Diseo de la Base de Datos.
2.- Diseo Fsico de la Base de Datos.
2.1.- Introduccin al Diseo Fsico de Bases de Datos.
2.2.- Comparacin del Diseo Fsico de la Base de Datos y el Diseo Lgico.
3.- Perspectivas de la Metodologa del Diseo Fsico de la Base de Datos
3.1 Diseo Fsico de la Base de Datos.
3.2 La Metodologa del Diseo Fsico de la Base de Batos para la Base de Datos
Relacional.
3.2.1 Traduccin del modelo de datos lgico global para tarjetas DBMS.
Objetivo.
3.2.1.1 Diseo de las bases relacionales para la tarjeta DBMS.
Objetivo
Formas principales de crear relaciones.
Ejemplos en SQL.
SQL 92.
TRIGGER.
INGRES versin 6.4.
Indices nicos.
Diseo de documentos de la Base Relacional.
3.2.1.2 La fuerza de la empresa para disear la tarjeta DBMS.
Objetivo.
Documentos diseados para la fuerza de la empresa.
Ejemplos.
4.-Representacin del Diseo Fsico
Objetivo.
Entendimiento de los recursos del sistema.
Objetivo.
Objetivo.
Beneficios.
Tipos.
8.- ORACLE 8
8.1.- Introduccin al servidor Oracle
8.1.1 Bases de Datos y direccin de la informacin.
8.1.2 Estructura de la Base de Datos y espacio de la direccin.
8.1.3 Estructura de la Memoria y Procesado.
8.1.4 Concurrencia de los datos y consistencia.
8.1.5 Procesamiento distribuido y Bases de datos distribuidas.
8.1.6 Comenzar y acabar las operaciones.
8.1.7 Seguridad de la Base de Datos.
8.1.8 Bases de Datos de reserva y recuperacin.
8.1.9 El modelo relacional para la direccin de la Base de Datos.
8.1.10 Acceso a datos.
PREFACIO
Los rboles B son ficheros de organizacin, con ndices dinmicos. Una organizacin para
los ndices proporciona un rpido acceso a los datos, basndose en el contenido de una clave,
+
con el pequeo costo que supone mantener los ndices actualizados, los rboles B contienen los
valores de las claves. La comprensin de los ndices abarca el almacenamiento de las clav4s una
sola vez, independientemente de cuntas veces aparece en las filas de una tabla, as como el
almacenamiento nicamente de aquellas porciones clave que difieren de las claves anteriores.
Los ndices secundarios proporcionan un mecanismo para especificar una clave adicional
para una relacin base que puede ser usada de forma ms eficiente. Esto implica que el
mantenimiento y uso de los ndices secundarios tienen que ser balanceados para el perfecto
funcionamiento.
INGRES comprende una serie de mdulos o herramientas de trabajo, tanto para usuario final
como para desarrollo. Esta herramienta incluye los lenguajes de consulta SQL y QUEL. El
diccionario de datos activo est integrado con la estructura de la Base de Datos INGRES. El
diccionario es una Base de Datos que se puede consultar. A medida que creamos tablas,
listados, programas o grficos el diccionario ir guardando toda la informacin de forma
automtica, sin que el usuario tenga que hacerlo. Al ser un BD INGRES, un usuario con cierto
privilegio, podr consultar, e incluso sacar referencias de la informacin existente, y en un
momento dado incluso actualizarla. Existe el mdulo INGRES / VISION que es una
Facilitar a los usuarios de la base la obtencin de los datos para cumplir sus
obligaciones dentro de la empresa.
Conseguir que esos datos estn disponibles en un plazo razonable que permita
apoyar en ellos la toma de decisiones.
Optimizar el rendimiento de los recursos dedicados al sistema.
El punto 3 (Diseo y carga); est basado en la definicin del diseo lgico y fsico, una
vez que se ha obtenido el esquema conceptual en el punto anterior. La carga se refiere a que una
vez definida la estructura fsica de la Base de Datos se ha de proceder a cargar los datos en la
misma. Una vez cargados en la base algunos ficheros, se debe comenzar a realizar las pruebas
de la Base de Datos y medir sus rendimientos, con objeto de ir ajustando la estructura fsica e
incluso, a veces, la estructura lgica con el fin de optimizar.
Estas fases son una aproximacin al:
Cabe destacar que cada fase es un proceso iterativo, y que se van produciendo
refinamientos sucesivos antes de pasar a las siguientes fases.
Requisitos de proceso; es decir, las distintas caractersticas que deben cumplir los
programas o aplicaciones que acten sobre la BD (por ejemplo, el tiempo de respuesta).
Especificaciones del SGBD (Sistema de Gestin de Base de Datos); que incluirn el modelo
de datos soportado, adems de las caractersticas de rendimiento, seguridad, lenguajes
tambin habr que estudiar las herramientas y mtodos que nos ayudarn a disear el diseo
lgico y fsico de la Base de Datos.
Configuracin del equipo fsico y del SO (Sistema Operativo): que influir en mayor o
menor medida en el desarrollo de la Base de Datos, as como en la etapa del Diseo Fsico.
Estructuras lgicas de datos: como resultado del proceso de diseo se obtendr el esquema
conceptual de la base, el esquema lgico en el modelo soportado por el SGBD, y algunas de
las principales vistas de usuario que se precisen para interactuan con la BD.
Los niveles de abstraccin de la arquitectura ANSI facilitan el diseo de una Base de Datos,
al proporcionarnos instrumentos que ayudan a la estructuracin del mundo real hasta llegar a la
Base de Datos Fsica. El problema se encuentra en que todava no hay un modelo conceptual
admitido e instrumentado en los SGBD, no se puede pasar de forma automtica de una
estructura conceptual a una estructura fsica, tenindose que recorrer el camino en dos etapas:
1) Primera etapa; consiste en adaptar la estructura conceptual a las exigencias y
restricciones del modelo de datos propio del SGBD que vaya a ser utilizado.
2) La segunda etapa; es que habr que obtener el esquema almacenado mediante
especificaciones que tiendan a conseguir la mxima eficiencia de cara a la mquina y al
problema concreto.
El mundo de los datos son las cadenas de caracteres a las que nos referamos
anteriormente, y que carecen de significado, si no disponemos de los medios necesarios para
recorrer el camino inverso, pasando al mundo real con ayuda del lenguaje de manipulacin, que
nos permitir recuperar los datos almacenados en la base, reincorporndoles su contenido
semntico y obteniendo la informacin que necesita el usuario.
Aplicando al esquema conceptual las reglas del modelo de datos propio del SGBD que se va
a utilizar, se obtiene la estructura lgica global, y de sta se pasa al esquema interno. Las Base
de Datos fsica se ha de apoyar en los mtodos de acceso del sistema operativo, y se ha de
rellenar con los valores que se obtienen por observacin de los sucesos del mundo real
(ocurrencias o instancias).
Las herramientas CASE estn proporcionando en estos momentos una importante ayuda
en el diseo de bases de datos, al disponer de modelos de datos semnticos, que facilitan el
diseo conceptual y realizan la transformacin al esquema relacional propio de los productos
comerciales ms extendidos.
1.2. Objetivos del diseo de la Base de Datos.
10
11
12
13
...
Registros fsicos.
Punteros.
Direccionamiento calculado (Hashing)
Agrupamientos (cluster)
Bloqueo y comprensin de datos.
Asignacin de espacios de almacenamientos como memorias intermedias (buffers).
Asignacin de conjuntos de datos a particiones y a dispositivos fsicos.
14
El nombre de la relacin.
Una lista de los atributos simples que soporta.
La clave primaria y, cuando sea apropiado, las claves alternativas (AK), y las claves
externas (FK).
Integrar la fuerza de alguna clave externa identificada.
Para representar el diseo de la base relacional, usaremos el DBDL para definir los
dominios, dejar de evaluar, y los indicadores nulos. Por ejemplo, para la relacin
Propietario_de la_Renta de la DreamHome caso de estudio, debemos producir el diseo que
mostramos a continuacin:
Dominio nmero propietario: longitud variable, cadena de caracteres de longitud 5
Dominio calle:
longitud variable, cadena de caracteres como mximo longitud 25
Dominio rea:
longitud variable, cadena de caracteres como mximo longitud 15
Dominio ciudad:
longitud variable, cadena de caracteres como mximo longitud 15
Dominio Post_codigo: longitud variable, cadena de caracteres como mximo longitud 8
Dominio tipo de propietario: carcter simple B,C,D,E,F,M,S
Dominio habitacin del propietario:
entero, en el rango de 1 a15
Dominio renta del propietario: valor monetario, en el rango 0.00-9999.00
Dominio nmero del dueo:
longitud variable, cadena de caracteres de longitud 5
Dominio n de personal en plantilla: longitud variable, cadena de caracteres de longitud 5
Dominio nmero de sucursal: longitud variable, cadena de caracteres de longitud 3
Propiedad_de la_ Renta (
Pno:
Calle:
Area:
Ciudad:
Pcode:
Tipo:
Habitacin:
nmero propietario
calle
rea,
ciudad
Post-codigo,
tipo de propietario
habitacin del
propietario
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL
NOT NULL
DEFAULT: F,
DEFAULT: 4,
16
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL DEFAULT: F,
NOT NULL DEFAULT: 4,
17
Renta:
Ono:
Sno:
Bno:
propietario
propietario de la renta
nmero del propietario
n de personal en plantilla,
nmero de sucursal
18
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL,
NOT NULL);
En estos casos, tenemos que forzar la clave, valores no presentados, y dominios con
fuerza dentro de la aplicacin y el diseo de estos por consiguiente. La excepcin a estos es
forzar una clave primaria, donde cada uno puede ser implementado a travs de ndices nicos,
como demostraremos posteriormente, o alternativamente, podramos especificar la estructura de
almacenamiento de cualquier relacin, como por ejemplo los rboles B.
Indices nicos
Un ndice es un mecanismo de acceso rpido, que recupera los datos desde una relacin,
similar a la indexacin de un libro. Un ndice nico es uno en cada no dos tuplas de una relacin
que permite tener el mismo valor del ndice. El sistema comprueba para cada valor duplicado
cuando la indexacin es creada (si existen datos alrededor), y cada cierto tiempo es aadido un
dato. Algunos RDBMS soportan la creacin de los ndices. Un ndice nico puede forzar para
usar nicamente la clave primaria y la clave alternativa. Por ejemplo, la afirmacin INGRES
CREATE TABLE impide la realizacin de dos registros siendo insertados dentro de la relacin
Propietario_de la_Renta con el valor de la misma clave primaria. Una vez solucionado esto,
podemos crear un ndice nico en la clave primaria, campo Pno usando la afirmacin INGRES
SQL de la siguiente manera:
CREATE UNIQUE INDEX Propietario_no_indexado ON Propietario_de la_Renta (Pno);
Similarmente, podemos crear un ndice compuesto, examinando la relacin que est
compuesta por la clave primaria y consiste en los atributos (Rno, Pno), usando la afirmacin
INGRES SQL, de la siguiente manera:
CREATE UNIQUE INDEX ndice_examinado ON examinado (Rno, Pno);
Si la tarjeta DBMS no soporta la definicin de la clave primaria y clave alterna, los
ndices nicos estarn creados para proporcionar esta funcionalidad, si es posible.
19
20
21
22
DISK I/O: con algn gran DBMS, hay una cantidad significante del disco I/O
introducido en el almacenamiento y recuperacin de datos. El uso del disco (disk)
I/O tiene una velocidad recomendable. Cuando esta velocidad es excedida I/O se
produce un embotellamiento. La forma en que los datos estn organizados en disco
puede tener un impacto mayor sobre todo el funcionamiento del disco. Es
recomendable que el almacenamiento sea uniformemente distribuido a travs del
almacenamiento en los drivers para reducir la probabilidad de que ocurran
problemas.
La siguiente figura muestra los principios bsicos de distribucin de los datos a
travs de los discos:
Sistema
Operativo
Ficheros
de la Base
de Datos Principal
Ficheros
Indexados
Recuperacin
de Ficheros
- El fichero del sistema operativo debera estar separado del fichero de la Base de
Datos.
- El fichero de la Base de Datos Principal debera estar separado de los ficheros
indexados.
- El fichero de recuperacin debera estar separado del resto de la Base de Datos.
23
Transacciones anidadas.
Savepoint.
Commits con retencin de bloqueos.
Transacciones con prioridad.
24
Para una pregunta, los atributos que son implicados en la unin de dos o ms
relaciones.
Otra vez, estos atributos son candidatos para la estructura de acceso.
La fuerza del tiempo impuesto en las transacciones; por ejemplo, la transaccin
debe ser completada dentro de un segundo.
- Los atributos usados en algunos predicados para transacciones crticas
deberan tener una propiedad ms alta para las estructuras de acceso.
A continuacin mostramos un anlisis para seleccionar transacciones:
Transaccin A
Da
hora
Camino
De relacin
a relacin
Cima
solo ocasionalmente
atributos
direccin
Bno
R(E)
R
I
sucursal
sucursal
personal
de plantilla
(todo)
Transaccin B
Cima
Da
Lunes
hora
9-10 AM
Camino
Martes
2-4 PM
De relacin
-
a relacin
sucursal
atributos
direccin
Bno
Sucursal
Personal
de plantilla
personal de
plantilla
Propietario
de la
Renta
Bno
Sno
FNombre
Lnombre
R(E)
R
R
R
Son
Pno
Direccin
R(E)
R
R
48-200
25
Transaccin C
Cima
Camino
De relacin
-
Propietario
de la Renta
Personal
de plantilla
Da
Lunes
Resto de la
semana
hora
9-11 AM
a relacin
Propietario
De la Renta
atributos
Pno
direccin
R(E)
R
Bno
Son
R
U
personal
de plantilla
Propietario
de la
Renta
8-20
Sno
Fnombre
Lnombre
R
R
R
Bno
R(E)
Son
R(E)
6-200
Heap.
Hash.
Mtodo de Acceso Secuencial Indexado (ISAM).
+
rboles B .
Heap
26
rboles B . De cualquier manera, los rboles B , para acceder a la indexacin pueden ser
fcilmente dirigidos porque el ndice es esttico.
27
A continuacin se muestran los siguientes principios para ayudar a seleccionar los ndices:
1) En general, indexar la clave primaria de una relacin si no es una clave del fichero de
organizacin. Mientras el estndar SQL2 proporciona una clusula para la especificacin
de la clave primaria, se debera tener en cuenta que esto no garantiza que la clave primaria
ser indexada.
2) No indexar las relaciones pequeas. Esto debe ser ms eficiente para buscar la relacin en
memoria que almacenar una estructura de ndices adicionales.
28
29
Transaccin/
Relacin
Sucursal
Personal en plantilla
Propietario_de la_
Renta
Dueo
Vista
Renta
conservacin
propietarios
lista de propietarios
para cada sucursal
I R U D
I R U D
I R U D
X
X
XX X X
XX X X
XX X X
X X X
X
X
X
Vamos a considerar como ejemplo la Base de Datos DreamHome que hemos venido usando
hasta ahora.
Paso 4.4.1: Considerar datos derivados
El valor de los atributos puede encontrar para examinar el valor de otros atributos que
son conocidos como derivados o atributos calculados. Por ejemplo, los indicados a
continuacin son todos atributos derivados:
30
El coste adicional para almacenar los datos derivados y guardar consistencia con datos
operacionales de cada uno de los derivados.
El coste para calcular cada tiempo que es requerido.
El o ella entonces seleccionara las opiniones menos costosas para la fuerza del
funcionamiento. Para el ltimo ejemplo citado a continuacin, necesitaramos almacenar un
atributo adicional en la relacin personal en plantilla representando el nmero de propietario
que cada miembro de la plantilla maneja corrientemente. Una relacin personal en plantilla
simplificada con los nuevos atributos derivados se muestra a continuacin.
El almacenamiento adicional mencionado anteriormente para este nuevo atributo
derivado no es particularmente significativo. El campo debera ser actualizado cada cierto
tiempo por un miembro de la plantilla que est asignado para.., o designado para manejar un
propietario, o el propietario sea borrado de la lista de propietarios disponibles. En cada caso, el
atributo, nmero de propietarios de los miembros apropiados de la plantilla ser incrementado o
decrementada en 1.
Las siguientes tablas muestran la relacin simplificada de personal en plantilla con los atributos
derivados Nmero de propietarios:
PROPIETARIO_DE LA_RENTA
Pno
PA14
PL94
PG4
Calle
16 Holhead
6 Argyll St
6 Lawrence
Area
Dee
Kilbur
Partic
k
PG36
PG21
PG16
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
Ciudad
Aberdeen
Londres
Glasgow
Pcodigo
AB75SU
NW2
G11 9QX
Tipo
Casa
llano
llano
Habit.
6
4
3
Renta
650
400
350
Ono
CO46
CO87
CO40
Sno
SA9
SL41
SG14
Bno
B7
B5
B3
Glasgow
Glasgow
Glasgow
G32 4QX
G12
G12 9AX
llano
casa
llano
3
5
4
375
600
450
CO93
CO87
CO93
SG37
SG37
SG14
B3
B3
B3
PERSONAL EN PLANTILLA
Sno
SL21
Fnombre
John
Lnombre
White
SG37 Ann
Beech
SG14 David
Ford
SA9
Mary
Howe
SG5
Susan
Brand
SL41
Julie
Lee
Calle
19 Taylor St, Cranford,
Londres
81 George St, Glasgow
PA1 2JR
63 Ashby St, Partick,
Glasgow G11
2 Elm PI, Aberdeen
AB2 3SU
5 Gt Western Rd,
Glasgow G12
28 Malvern St, Kilburn
NW2
NIN
WK442011B
Bno
B5
N dePropietarios
0
WL432514C
B3
WL220658D
B3
WM532187D
B7
WK588932E
B3
WA290573K
B5
Sera necesario asegurar que estos cambios fueran hechos consecuentemente para
mantener la cuenta correcta, y consecuentemente asegurar la integracin de la Base de Datos.
31
Combinando las relaciones una a una (1:1): Reexaminar las relaciones 1:1 para
determinar los efectos para combinar las relaciones dentro de una relacin simple. La
combinacin debera ser solamente considerada para relaciones que son frecuentemente
referidas juntas e infrecuentemente referidas separadamente. Considerar, por ejemplo, la
relacin 1:1 entre Alquiler y Entrevista. La relacin Alquiler contiene informacin sobre
32
ALQUILER
Rno
CR76
CR56
CR74
CR62
Fnombre
John
Aline
Mike
Mary
Lnombre
Kay
Stewart
Ritchie
Tregear
Tipo
llano
llano
casa
llano
Renta maxima
425
350
750
600
Bno
B5
B3
B3
B7
ENTREVISTA
Rno
CR62
CR56
Sno
SA9
SG37
Fecha
14-Mayo-1998
28-Abril-1998
Comentarios
Falta urgente de propietarios
Arriendo corriente finalizado en Junio
Fnombre
John
Aline
Lnombre
Kay
Stewart
tipo
llano
llano
Renta max
425
350
Bno
B5
B3
Sno
nulo
SG37
Fecha
nulo
28-04-98
CR74
CR62
Mike
Mary
Ritchie
Tregear
casa
llano
750
600
B3
B7
nulo
SA9
nulo
14-05-98
Comentario
Nulo
Arrendado
acabado
en
junio
Nulo
Falta urgente
de propietarios
Duplicando los atributos no clave en relaciones de una a muchas (1:M) para reducir
los juegos: Con el propsito especfico de reducir o borrar los juegos desde la frecuencia o
preguntas crticas, consideramos los beneficios que deben resultar en la duplicacin de uno o
ms atributos no clave de la relacin padre en la relacin hijo, en una relacin 1:M. Por ejemplo,
cuando la relacin Propietario_de la_Renta es accedida, son muy comunes los nombres de los
dueos para acceder al mismo tiempo. Una pregunta tpica en SQL sera:
SELECT p.*, o.lnombre
FROM Propietario_de la_Renta p, dueo o
WHERE p.ono = o. Ono AND bno = B3;
Basado en la relacin original Propietario_de la_Renta y Dueo como se muestra en las
siguientes tablas:
PROPIETARIO_DE LA_RENTA
Pno
PA14
PL94
PG4
Calle
16 Holhead
6 Argyll St
6 Lawrence
Area
Dee
Kilbur
Partic
k
PG36
PG21
PG16
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
Ciudad
Aberdeen
Londres
Glasgow
Pcodigo
AB75SU
NW2
G11 9QX
Tipo
Casa
llano
llano
Habit.
6
4
3
Renta
650
400
350
Ono
CO46
CO87
CO40
Sno
SA9
SL41
SG14
Bno
B7
B5
B3
Glasgow
Glasgow
Glasgow
G32 4QX
G12
G12 9AX
llano
casa
llano
3
5
4
375
600
450
CO93
CO87
CO93
SG37
SG37
SG14
B3
B3
B3
33
Fnombre
Joe
Lnombre
Keogh
CO87
CO40
CO93
Carol
Tina
Tony
Farrel
Murphy
Shaw
direccin
2 Fergus Dr, Banchory, Aberdeen
AB2 7SX
6 Achray St, Glasgow G32 9DX
63 Well St, Shawlands, Glasgow G42
12 Park P1, Hillhead, Glasgow G4
0QR
N telefono
01224-861212
0141-357-7419
0141-943-1728
0141-225-7025
Calle
PA14
PL94
PG4
16 Holhead Dee
6 Argyll St Kilbur
6 Lawrence Partic
k
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
PG36
PG21
PG16
Area
Ciudad
Pcodigo
Tipo
Habit.
Renta
Ono
Sno
Aberdeen AB75SU
Londres
NW2
Glasgow G11 9QX
Casa
llano
llano
6
4
3
650
400
350
CO46
CO87
CO40
SA9
SL41
SG14
Glasgow
Glasgow
Glasgow
llano
casa
llano
3
5
4
375
600
450
CO93
CO87
CO93
SG37
SG37
SG14
G32 4QX
G12
G12 9AX
Lnom
bre
Keog
Farre
Mur
phy
Shaw
Farre
Shaw
El beneficio que resulta de estos cambios tiene que ser balanceados contra los
problemas que deben surgir. Por ejemplo, si el dato duplicado es cambiado en la relacin padre,
debe ser actualizada en la relacin hijo. Adems, para una relacin 1:M, deben ser ocurrencias
mltiples de cada item de datos en la relacin hijo (por ejemplo, el nombre Farre y Shaw ambos
aparecen dos veces revisadas en la relacin Propietario_de la_Renta). As esto es necesario para
mantener consistencia de copias mltiples. Si la actualizacin del atributo Lnombre en la
relacin Dueo y Propietario_de la_Renta no puede ser automtica, el potencial para perder la
integridad es considerable. Un problema asociado con la duplicacin es el tiempo adicional que
es requerido automticamente para mantener la consistencia cada tiempo que es insertado un
registro, actualizado o borrado. En nuestro caso, es improbable que el nombre del dueo de una
propiedad se cambie, as la duplicacin debe ser garantizada.
Otro problema a considerar es el incremento en el espacio de almacenamiento resultante
de la duplicacin. Otra vez, con el relativamente bajo coste del almacenamiento secundario
actualmente, esto no debe ser tanto un problema. Por lo tanto, estos nos justifican una
duplicacin arbitraria.
Referenciar las tablas: Referenciar tablas, algunas veces llamadas tablas visitadas o lista pico,
son un caso especial de relaciones 1:M. Tpicamente, una tabla visitada contiene un cdigo y
una descripcin. Por ejemplo, debemos definir una tabla visitada (padre) para la propiedad tipo
y modificar la tabla Propietario_de la_Renta (hijo), como se muestra en la siguiente tabla.
Llamamos a la tabla que mira hacia arriba Tipo-propietario para modificar el tipo de atributo de
la relacin Propietario_de la_Renta:
34
Bno
B7
B5
B3
B3
B3
B3
Descripcin
Casa
Llano
PROPIETARIO_DE LA_RENTA
Pno
Calle
Area
Ciudad
PA14
PL94
PG4
PG36
PG21
PG16
16 Holhead Dee
6 Argyll St Kilbur
6 Lawrence Partic
k
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
Pcodigo
Aberdeen AB75SU
Londres
NW2
Glasgow G11 9QX
Casa 6
Llano 4
Llano 3
650
400
350
CO46
CO87
CO40
Lnombr Bno
e
SA9 Keog
B7
SL41 Farre
B5
SG14 Murphy B3
Glasgow
Glasgow
Glasgow
Llano 3
Casa 5
Llano 4
375
600
450
CO93
CO87
CO93
SG37 Shaw
SG37 Farre
SG14 Shaw
G32 4QX
G12
G12 9AX
Tipo
Habit.
Renta
Ono
Sno
B3
B3
B3
Las ventajas de usar una tabla que mira hacia arriba es:
Si la tabla que mira hacia arriba es usada con frecuencia o en preguntas crticas, y la
descripcin es improbable para cambiar, sta consideracin debera dar una duplicacin de los
atributos descripcin en la relacin hijo, como se muestra en la siguiente tabla:
PROPIETARIO_DE LA_RENTA
Pno
Calle
Area
Ciudad
PA14
PL94
PG4
PG36
PG21
PG16
16 Holhead Dee
6 Argyll St Kilbur
6 Lawrence Partic
k
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
Pcodigo
Tipo
Habit.
Renta
Ono
Aberdeen AB75SU
Londres
NW2
Glasgow G11 9QX
1
2
2
6
4
3
650
400
350
Glasgow
Glasgow
Glasgow
2
1
2
3
5
4
375
600
450
G32 4QX
G12
G12 9AX
Sno
Bno
CO46
CO87
CO40
Descrip
cion
SA9 Casa
SL41 Llano
SG14 Llano
CO93
CO87
CO93
SG37 Llano
SG37 Casa
SG14 Llano
B3
B3
B3
La tabla original que mira hacia arriba no es redundante, por ello puede todava ser usado
para validar el input. As mismo, para duplicar la descripcin en la relacin hijo, tenemos que
eliminar lo necesario para jugar en la relacin hijo, para la tabla que mira hacia arriba.
Duplicando los atributos con clave externa en relaciones de una a muchas (1:M) para
reducir los juegos: otra vez, con el propsito especfico de reducir o remover los juegos desde la
frecuencia o preguntas crticas, consideremos los beneficios que deben resultar en la duplicacin
de uno a muchos de los atributos de la clave externa en una relacin. Por ejemplo, una pregunta
frecuente para DreamHome es alistar todos los propietarios, y dueos como una sucursal,
usando una pregunta SQL de la siguiente forma (basado en la relacin original mostrada en las
relaciones Dueo y Propietario_de la_Renta vistas anteriormente):
SELECT o.lnombre
FROM propietario_de la_renta p, dueo o
WHERE p.ono = o.ono AND p.bno = B3;
35
B7
B5
B3
Fnombre
Joe
Lnombre
Keogh
CO87
CO40
CO93
Carol
Tina
Tony
Farrel
Murphy
Shaw
Direccin
2 Fergus Dr, Banchory, Aberdeen
AB2 7SX
6 Achray St, Glasgow G32 9DX
63 Well St, Shawlands, Glasgow G42
12 Park P1, Hillhead, Glasgow G4
0QR
Bno
B7
N telefono
01224-861212
B5
B3
B3
0141-357-7419
0141-943-1728
0141-225-7025
36
Calle
16 Holhead
6 Argyll St
6 Lawrence
Area
Dee
Kilbur
Partic
k
PG36
PG21
PG16
2 Manor Rd
18 Dale Rd Hyndl
5 Novar Dr Hybdl
Ciudad
Aberdeen
Londres
Glasgow
Pcodigo
AB75SU
NW2
G11 9QX
Tipo
Casa
Llano
Llano
Habit.
6
4
3
Glasgow
Glasgow
Glasgow
G32 4QX
G12
G12 9AX
Llano 3
Casa 5
Llano 4
Renta
650
400
350
Ono
CO46
CO87
CO40
Sno
SA9
SL41
SG14
Bno
B7
B5
B3
375
600
450
CO93
CO87
CO93
SG37 B3
SG37 B3
SG14 B3
ALQUILER
Rno
fnombre
lnombre
Direccin
N telfono
tipo
Bno
llano
Maxrenta
425
CR76
John
Kay
CR56
Aline
Stewart
CR74
Mike
Ritchie
CR62
Mary
Tregear
0171-7745632
0141-8481825
01475392178
01224196720
llano
350
B3
casa
750
B3
llano
600
B7
B5
ENTREVISTA
Rno
CR56
CR76
CR56
CR62
CR56
Pno
PA14
PG4
PG4
PA14
PG36
fecha
24-mayo-98
20-abril-98
26-mayo-98
14-mayo-98
28-abril-98
Comentario
Tambin pequeo
Tambin remoto
Sin habitacin comedor
37
fnombre
lnombre
Direccin
N telfono
tipo
Bno
llano
Maxrenta
425
CR76
John
Kay
CR56
Aline
Stewart
CR74
Mike
Ritchie
CR62
Mary
Tregear
0171-7745632
0141-8481825
01475392178
01224196720
llano
350
B3
casa
750
B3
llano
600
B7
B5
ENTREVISTA
Rno
CR56
CR76
CR56
CR62
CR56
Pno
PA14
PG4
PG4
PA14
PG36
fecha
24-mayo-98
20-abril-98
26-mayo-98
14-mayo-98
28-abril-98
Comentario
Tambin pequeo
Tambin remoto
Sin habitacin comedor
Calle
22 Deer Rd
B7
16 Argyll St
B3
163 Main St
Area
Sidcu
p
Dyce
Ciudad
Londres
Aberdeen
B4
Partic Glasgow
k
32 Manes Rd Leigh Bristol
B2
56Clover
Londres
Pcodigo
n tlno
SW1 4EH 0171-8861212
AB2 3SU 0122467125
G11 9QX 0141-3392178
BS99 INZ 0117-9161170
NW10
0181-9636EU
1030
n fax
0171-8861214
01224-67111
0141-3394439
0117-7761114
0181-4537992
COCHES-SUCURSAL
Bno
B5
B5
B5
B7
B7
N de registro
M109 ABG
M670 BFT
N64 SAP
M536 XRT
N90 BDC
38
Bno
SUCURSAL
Calle
rea
ciudad
Pcdig N tlno
o
Coche
4
N fax
B5
22 Deer Rd
Sidcup
londres
SW1
4EH
M109
ABG
M670
BFT
N64
SAB
nulo
0171-886-1214
B7
16 Argyll St
Dyce
nulo
01224-67111
163 Main St
Partick
N90
BDC
nulo
B3
M536
XRT
0141-339-4439
B4
32 Manse Rd
Leigh
0117-776-1114
B2
56 Clover Dr
0181-453-7992
01718861212
Aberdeen AB2
012243SU
67125
Glasgow G11
01419QX
3392178
Bristol
BS99 0117INZ
9161170
Londres NW10 01816EU
9631030
El nmero absoluto de tems en los grupos repetidos es conocido (en este ejemplo, hay una
mximo de 4 coches).
El nmero es esttico y no cambiar sobre el tiempo (el nmero de coches es fijado por la
compaa).
El nmero no es muy largo tpicamente no ms grande que doce, aunque esto no es tan
importante como las dos condiciones anteriores.
A veces, debe ser solo el ms reciente o corriente valor en un grupo repetido, o justo el
hecho de que hay un grupo repetido, que es necesario ms frecuentemente. En el ejemplo de
arriba, necesitamos almacenar solo el hecho de que una oficina tiene una compaa de coches.
En este caso, podramos considerar almacenar solo una columna extra en la relacin sucursal
representando esta informacin.
Creando tablas extradas: Debe haber situaciones donde los informes tienen que
ejecutarse para ser la cumbre durante el da. Estos informes de datos de accesos derivados y
realizar multirelaciones de juegos en el mismo set de las relaciones base. As mismo, el informe
del dato est basado en que debe ser relativamente esttico o en algunos casos, esto no tiene que
ser corriente (esto es, si el dato fuera unas pocas horas, el informe sera perfectamente
aceptable). En estos casos, sera posible crear uno simple, ms alto denormalizar la tabla
extrada basada en las relaciones requeridas para el informe, y permite a los usuarios acceder a
la tabla extrada directamente en lugar de a la relacin base. La tcnica ms comn para
producir la tabla extrada es crear y poblar las tablas en una coleccin ejecutada cuando el
sistema est ligeramente cargado.
Introduccin de documentos redundantes
La introduccin de la redundancia debera estar completamente documentada, junto con
las que introduce. En particular, la razn de los documentos para seleccionar un acceso
aproximado donde existen muchas alternativas. Actualizar el modelo de datos lgicos para
reflejar algunos cambios hechos como un resultado de la denormalizacin.
39
40
Por lo tanto, la relacin Propietario_de la_Renta necesitara 671 pginas INGRES para ser
almacenadas como un fichero ISAM, con un ndice en el atributo Pno usando un 80% del factor
de llenado. En un sistema con un tamao de bloque de 512 bytes, la relacin Propietario_de
la_Renta necesitara 671 * 2048 / 512 = 2648 bloques de disco.
41
Un rbol B incluye pginas ndice, pginas intermedias sprig cuya finalidad es hojear
pginas, hojear pginas cuya utilidad es para datos de pginas. En adicin, datos, ndices, y
pginas hojas pueden usar diferentes factores de llenado. En INGRES, los factores de llenado
presentados son 80% para datos y pginas ndices, y 70% para pginas hojas. Este mtodo de
acceso se usa para aumentar el rendimiento de largas bsquedas. CA-DB/VAX utiliza una
versin mejorada de ndices B+ en la cual se mantiene la informacin del ndice separada de los
datos. Este mtodo incrementa el rendimiento al eliminar la necesidad de leer datos
innecesarios. CA-DB/VAX puede determinar si una fila contiene los valores buscados leyendo
solamente el ndice. El clculo para el tamao de la relacin es:
Fila_por_pgina = (dato de llenado * 2010) / (ancho_fila + 2); redondeo libre hacia abajo
libre = ((2008 (fila_por_pgina * (ancho_fila + 2))
si libre > ((2048 (dato de llenado * 2048)) y ancho fila <= libre
fila_por_pgina = fila_por_pgina + 1
mximo valor 512
clave_mxima
= (1964 / (ancho_clave + 6)) 2;
redondeo hacia abajo
clave_por_hoja = mximo_clave * hoja_llenado;
redondeo hacia abajo, valor mnimo 2
clave_por_ndice = mximo clave * ndice_llenado;
redondeo hacia abajo, valor mnimo 2
n_pgina_hoja = (n filas / clave_por_hoja) + 1;
redondeo hacia arriba
n_datos_pgina = n_hoja_pgina * (clave_por_hoja / fila_por_pgina) +
MODULO (n_fila / clave_por_hoja) / fila_por_pgina;
ambas
redondeadas hacia arriba
divisiones
N pginas sprig = 0
si n_pginas_hoja <= clave_por_ndice
N pginas sprig = (n_pgina_hoja / clave_por_ndice);redondeo hacia arriba
N pginas ndice = 0
IF (n pginas sprig > clave_por_ndice) THEN
X = n pginas sprig
DO
X = X / clave_por_ndice
N pginas ndice = n pginas ndice + X
WHILE (X > clave_por_ndice)
+
42
Heap
Hash
ISAM
+
Arbol B
10.000
20.000
30.000
40.000
50.000
2.356
10.000
2.684
3.340
4.708
20.000
5.360
6.592
7.060
30.000
8.032
9.844
9.412
40.000
10.712
13.100
11.768
50.000
13.388
16.352
Esta tabla muestra el espacio de disco requerido (en 512 byte de bloque) para la
relacin Propietario_de la_Renta como el nmero de registros en el fichero incrementan.
43
Son
fnombre
lnombre
direccin
SG37 Ann
Beech
SG14 David
Ford
SG5
Brand
Susan
n tlfno
posicin
sexo
M
H
Normalmente, las perspectivas son creadas usando SQL. Por ejemplo, creamos una vista
para personal en plantilla a la sucursal B3 que excluye la informacin del salario, as que solo el
Manager a esa sucursal puede acceder a los detalles del salario para quien trabaja en su oficina.
La afirmacin en SQL en este caso sera:
CREATE VIEW personal en plantilla 3
AS SELECT son, fnombre, lnombre, direccin, n tlfno, posicin, sexo
FROM personal en plantilla
WHERE bno = B3;
44
45
46
Estos dos ltimos beneficios son ms intangibles que otros. As, podemos ciertamente
afirmar que respuestas lentas desmoralizan la plantilla de personal y potencialmente pierden
clientes.
La sintonizacin es una actividad que no es nunca completa. A travs de la fila del sistema,
sera necesario para el funcionamiento del monitor, particularmente para facturar los cambios en
el medio ambiente y los requisitos de usuario. De cualquier manera, hacer un cambio a un rea
de un sistema operacional para proporcional el funcionamiento debe tener un efecto adverso en
otra rea. Por ejemplo, aadir un ndice para una relacin debe proporcional el funcionamiento
de una aplicacin, pero debe afectar adversamente a otra, quiz otra aplicacin ms importante.
Por lo tanto, con cuidado deben tomarse las decisiones para hacer los cambios a un sistema
operacional. Si es posible, controlar cualquier cambio en una prueba de Base de Datos, o
alternativamente, cuando el sistema no es usado totalmente (por ejemplo, fuera de horas de
trabajo).
Existen los siguientes monitores de rendimiento:
47
48
49
50
51
52
53
Aqu se explica el mecanismo software usado por Oracle para desempear los
siguientes requisitos de un sistema de direccin de la informacin:
8.1.5
54
Una base de datos Oracle no est disponible a los usuarios hasta que el servidor Oracle
ha comenzado y la base de datos haya sido abierta. Estas operaciones deben cumplirse
por el administrador de la base de datos. Comenzar una base de datos y hacer esto
disponible por el amplio sistema utiliza estos tres pasos:
1. Comenzar un caso del servidor de la base de datos.
2. Montar la base de datos.
3. Abrir la base de datos.
Cuando el servidor Oracle ha comenzado, este usa un fichero parmetro que contiene
los parmetros de inicializacin. Estos parmetros especifican el nombre de la base de
datos, la cantidad de memoria para reparar, el nombre de los ficheros de control, y
varios lmites y otros parmetros del sistema.
Cerrar un caso y la base de datos que es conectada toma tres pasos:
1. Cerrar la base de datos.
2. Disminuir la base de datos.
3. Cerrar el caso del servidor Oracle.
55
Asociado con cada usuario de la base de datos est el esquema por el mismo nombre.
Un esquema es una coleccin lgica de objetos (tablas, vistas, secuencias, sinnimos,
ndices, clusters, procedimientos, funciones, paquetes y lincado de bases de datos). Por
el contrario cada usuario crea y tiene acceso a todos los objetos en el correspondiente
esquema.
La seguridad de la base de datos puede ser clasificada dentro de dos categoras: sistemas
de seguridad y seguridad de datos.
Sistema de seguridad incluye el mecanismo que controla el acceso y uso de la base de
datos al nivel del sistema. Por ejemplo, el sistema de seguridad incluye:
Mecanismos de seguridad
El servidor Oracle proporciona un acceso de control discreto, que es menor el acceso
restringido a la informacin basada en privilegios. El privilegio apropiado debe ser
asignado a un usuario, en el sentido que el usuario tenga acceso a un objeto. El
privilegio apropiado para un usuario puede asentir al privilegio de otros usuarios a su
discrecin; por esta razn, este tipo de seguridad es llamada discreta.
56
Dominios de seguridad
Cada usuario tiene un dominio de seguridad, un juego de propsitos que determina
semejante cosa como la:
Privilegios
Un privilegio es un derecho a ejecutar un tipo particular de declaraciones SQL. Como
por ejemplo incluir privilegios de:
El privilegio de una base de datos Oracle puede ser dividido en dos distintas categoras;
privilegios de sistema y privilegio de objetos.
Privilegios de sistema
El privilegio de sistema permite al usuario realizar una accin particular en un gran
sistema o accin particular en un tipo particular de objetos. Por ejemplo, el privilegio
creado en una tabla o el borrado de las filas y una tabla en la base de datos es privilegio
de sistema. Muchos privilegios de sistemas estn disponibles solo a administradores y
desarrollo de aplicaciones porque el privilegio es muy poderoso.
Privilegios de objetos
El privilegio de objetos permite a los usuarios realizar una accin particular en un objeto
esquema especfico. Por ejemplo, el privilegio a borrar filas de una tabla especifica es
un privilegio objeto. El privilegio objeto es asignado a usuarios finales as que ellos
pueden usar una aplicacin de la base de datos a terminar una tarea especfica.
8.1.8
Esta seccin cubre las estructuras y mecanismos de software usados por Oracle para
proporcionar:
57
Tablas
Una tabla es una unidad bsica de almacenamiento de datos en una base de datos
Oracle. Las tablas de una base de datos tienen todos los datos accesibles al usuario.
Los datos de las tablas son almacenados en filas y columnas. Cada tabla es definida con
un nombre de tabla y juego de columnas. Cada columna tiene un nombre de columna,
un tipo de dato (semejante a CHAR, DATE, o NUMBER), y un ancho (con el cual debe
ser predeterminado por el tipo de dato, como es DATE) o escala y precisin (por el
NUMBER solo tipo de dato). Una vez una tabla es creada, y vlidas las filas de datos
pueden insertarse. Las filas de tablas pueden ser preguntas, borradas o modificadas.
Vistas
Una vista es una costumbre de presentacin de los datos en una o ms tablas. Una vistas
tambin puede ser opinin de cmo se almacenan las preguntas.
Las vistas no contienen actualizaciones o datos almacenados; antes, ellos derivan sus
datos desde las tablas en que ellos estn basados, referentes a las tablas base de la vista.
Las tablas base pueden por turnos ser ellas mismas vistas.
Las vistas pueden ser usadas para lo siguiente:
58
Simplificacin de los comandos por el usuario. Por ejemplo, las vistas permiten al
usuario seleccionar la informacin de mltiples tablas sin requerir al usuario saber
actualmente como realizar una correlacin de subpreguntas.
Presentar los datos en una perspectiva diferente desde esa tabla. Por ejemplo, las
vistas proporcionan unos significados para renombrar las columnas sin afectar a las
tablas en las cuales est basada la vista.
Almacenar preguntas complejas. Por ejemplo, una pregunta puede realizar clculos
extensos que informan sobre la tabla. Para salvar estas preguntas como una vista,
los clculos son realizados solo cuando la vista es preguntada.
Las vistas que implican un juego (una declaracin SELECT que selecciona datos desde
mltiples tablas) de dos o ms tablas pueden solo actualizar ciertas condiciones.
8.1.9
El sistema de direccin de la base de datos tiene que desarrollar una jerarqua para la red
del modelo relacional. El ms ancho modelo de bases de datos aceptadas es el modelo
relacional. Oracle prolonga el modelo relacional para un modelo relacional objeto, que
hace posible el modelo de negocios de almacenamiento complejo en una relacin de
base de datos.
8.1.10 Acceso a datos
Esta seccin introduce como Oracle rene los requisitos generales para un DBMS para
hacer lo siguiente:
59
PL/SQL
PL/SQL es un lenguaje de extensin procedimental Oracle. PL/SQL combina la
facilidad y la flexibilidad de SQL con el funcionamiento procedimental de un lenguaje
programado estructurado, tal como IFTHEN, WHILE, y LOOP.
Cuando designamos una aplicacin de la base de datos, un promotor debera considerar
las ventajas de usar el almacenamiento PL/SQL:
Porque el cdigo PL/SQL puede ser almacenado centralmente en una base de datos,
trfico de red entre aplicaciones y la reduccin de la base de datos, as la aplicacin
y el funcionamiento del sistema aumenta.
El acceso de los datos puede ser controlado por el cdigo de almacenamiento
PL/SQL. En estos casos, el usuario de PL/SQL puede acceder a los datos solo como
deseado por la aplicacin del promotor (al menos otra ruta de acceso es concedida).
Los bloques PL/SQL pueden ser enviados por una aplicacin a una base de datos,
ejecutando complejas operaciones sin excesivo trfico de red.
60
61