20350 BASES DE DADES 1

Anuncio
20350
BASES DE DADES 1
Enric Martı́ i Gòdia
Escola Tècnica Superior d’Enginyeria
Universitat Autònoma de Barcelona
Setembre 2006
Versió corregida per Mireia Bellot
1
TEMARIO
1. INTRODUCCIÓN. CONCEPTOS BÁSICOS
• Introducción y definiciones
• Componentes de un sistema de Bases de Datos
• Evolución histórica
• Ventajas e inconvenientes de un sistema de BD
2. ARQUITECTURA
• Arquitectura ANSI-SPARC
• El DBA i el SGBD
• Arquitectura back-end / front-end
3. DISEÑO. EL MODELO ENTIDAD-RELACIÓN
• Diseño de una Base de Datos
• Modelo Entidad-Relación
• Modelo E-R extendido
• Criterios de diseño de un esquema E-R
• Diseño de un esquema E-R
4. MODELO DE BASES DE DATOS RELACIONAL
• Introducción
• Estructura de datos
• Reglas de integridad
• Manipulación de datos
– Álgebra Relacional
2
TEMARIO (ii)
5. DISEÑO DE UNA BASE DE DATOS
• Fases de diseño de una BD
• Captación y análisis de requerimientos
• Diseño conceptual de la BD
• Diseño lógico
• Diseño fı́sico
6. NORMALIZACIÓN
• Teorı́a de la normalización
• Dependencia funcional
• Formas normales de Codd (1NF, 2NF, 3NF)
• Forma normal de Boyce-Codd (FNBC)
• Proceso de normalización
7. NIVEL INTERNO
• Acceso a la Base de Datos.
• Estructuras de almacenamiento
– Indexación
– Hashing
• Técnicas de compresión
– Compresión diferencial y jerárquica
– Codificación de Huffman
3
Bibliografia
• A. Silberschatz, H.F. Korth, S. Sudarshan, Fundamentos de Bases de Datos, 3a edición, McGrawHill, 2006.
• T. M. Connolly, C. E. Begg, Sistemas de Bases de
Datos, 4a edición, Pearson-Addison-Wesley, 2005.
• P.Rob, C.Coronel, Sistemas de Bases de Datos.
Diseño, implementación y administración, Thomson, 2004.
• D.M. Kroenke, Procesamiento de Bases de Datos,
8a edición, Pearson-Prentice Hall, 2003.
• C.J. Date, Introducción a los Sistemas de Bases
de Datos, 7a edició, Prentice Hall, 2001.
• A. de Miguel, P. Martı́nez, E. Castro, et al., Diseño
de Bases de Datos. Problemas resueltos, RaMa, 2001.
• G.W. Hansen, J.V. Hansen, Diseño y administración de Bases de datos, 2a edición, Prentice Hall,
1997.
• M. Marqués, J.I. Aliaga, S. Garciı́a, G. Quintana,
SQL y desarrollo de aplicaciones en ORACLE
8, Col. ”Treball d’Informàtica i Tecnologia”, 9,
Universitat Jaume I, 2001.
4
TEMA 1
INTRODUCCIÓN.
CONCEPTOS BÁSICOS
1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Componentes de un Sistema de Base de Datos . 9
4. Evolución histórica . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5. Ventajas de un Sistema de Bases de Datos . . . . 29
6. Inconvenientes de un Sistema de BD . . . . . . . . . 42
5
Introducción
Sistema de Base de Datos: Sistema de archivo por computador.
• Se almacena un conjunto de archivos de datos.
• Operaciones que un usuario puede realizar sobre los
archivos:
– AÑADIR nuevos archivos a la base de datos
– INSERTAR datos nuevos en los archivos existentes
– CONSULTAR datos de los archivos existentes
– ACTUALIZAR datos en los archivos existentes
– BORRAR datos de los archivos existentes
– ELIMINAR archivos de la base de datos
6
Ejemplo: Base de Datos con un único archivo: CAVA
ENT
2
3
6
11
12
16
21
22
VINO
PRODUCTOR
AÑO
BOT
LISTO
Chardonnay
Chardonnay
Chardonnay
Jo Riesling
Jo Riesling
Jo Riesling
Fume Blancg
Jo Riesling
Buena Vista
Louis Martini
Chappellet
Jekel
Buena Vista
Sattus
Ch. St. Jean
Rob. Mondavi
98
99
97
99
97
97
98
97
1
5
4
10
1
1
4
2
01
00
01
02
02
99
01
00
Observaciones:
• Archivos → TABLAS
• Filas de la tabla → TUPLAS, REGISTROS
• Columnas de la tabla → ATRIBUTOS, CAMPOS
• Lenguaje de interacción con los datos: SQL (Structured Query
Language)
7
Instrucciones de manipulación del lenguaje:
CONSULTA:
SELECT VINO,ENT,PRODUCTOR
--> atributos,campos
FROM CAVA
--> tabla
WHERE
--> condicion
LISTO=91
Resultado:
VINO
ENT
Chardonnay
Chardonnay
Fume Blancg
2
6
21
PRODUCTOR
Buena Vista
Chappellet
Ch. St. Jean
INSERCIÓN:
INSERT
INTO CAVA
VALUES (53,’Pinot Noir’,’Saintsbury’,87,1,93)
Resultado:
ENT
2
3
6
11
12
16
21
22
53
VINO
PRODUCTOR
AÑO
BOT
LISTO
Chardonnay
Chardonnay
Chardonnay
Jo Riesling
Jo Riesling
Jo Riesling
Fume Blancg
Jo Riesling
Pinot Noir
Buena Vista
Louis Martini
Chappellet
Jekel
Buena Vista
Sattus
Ch. St. Jean
Rob. Mondavi
Sainstbury
98
99
97
99
97
97
98
97
87
1
5
4
10
1
1
4
2
1
01
00
01
02
02
99
01
00
93
8
ACTUALIZACIÓN:
UPDATE CAVA
SET BOT=4
WHERE ENT=3
Resultado:
ENT
2
3
6
11
12
16
21
22
VI
PRODUCTOR
ANY
BOT
LISTO
Chardonnay
Chardonnay
Chardonnay
Jo Riesling
Jo Riesling
Jo Riesling
Fume Blancg
Jo Riesling
Buena Vista
Louis Martini
Chappellet
Jekel
Buena Vista
Sattus
Ch. St. Jean
Rob. Mondavi
98
99
97
99
97
97
98
97
1
4
4
10
1
1
4
2
01
00
01
02
02
99
01
00
VINO
PRODUCTOR
ANY
BOT
LISTO
Chardonnay
Chardonnay
Jo Riesling
Jo Riesling
Jo Riesling
Fume Blancg
Jo Riesling
Louis Martini
Chappellet
Jekel
Buena Vista
Sattus
Ch. St. Jean
Rob. Mondavi
99
97
99
97
97
98
97
5
4
10
1
1
4
2
00
01
02
02
99
01
00
BORRADO:
DELETE
FROM CAVA
WHERE ENT=2
Resultado:
ENT
3
6
11
12
16
21
22
9
Ejemplo: Base de Datos con diversos archivos: LIGA
BALONCESTO
Campos
Tipo
Longitud
Num Eq
Jornada
Camp
Numérico
Numérico
Numérico
3
2
3
Nom Eq
Num Jug
Cap Eq
Nom Jug
Tel Jug
Adr Jug
Falt Jug
Punt Jug
Temp Jug
Carácter
Numérico
Numérico
Carácter
Carácter
Carácter
Numérico
Numérico
Numérico
16
3
3
16
7
24
2
3
3
Significado
Número de Equipo.
Jornada de la liga.
Número de Equipo propietario del
Campo donde se juega el partido.
Nombre del Equipo.
Número del Jugador.
Número del Jugador capitán.
Nombre del Jugador
Teléfono del Jugador.
Dirección del Jugador.
Número de faltas del Jugador.
Número de Puntos del Jugador.
Tiempo jugado por el Jugador.
TABLAS:
PARTIDO (Num Eq, Jornada, Camp)
EQUIPO (Num Eq, Nom Eq, Cap Eq)
JUGADOR (Num Jug, Nom Jug, Num Eq, Tel Jug, Adr Jug)
PUNTUACION (Num Jug, Jornada, Falt Jug, Punt Jug, Temp Jug)
10
Tablas Liga de Baloncesto:
PREGUNTAS:
• Obtener el NOMBRE del capitán del equipo AUTÓNOMA.
• Cuantos partidos ha jugado el equipo AUTÓNOMA en su
campo?.
• Cuantos minutos ha jugado el capitán del equipo CENTRAL
durante toda la liga?.
• Cuál ha sido el resultado del partido AUTÓNOMA-POLITÉCNICA, jugado en el campo del equipo AUTÓNOMA?.
11
Definiciones
Sistema de Base de Datos:
• Sistema informático diseñado para almacenar, manipular
datos y para permitir recuperarlos cuando sea necesario y
de la manera que sea necesaria. (Date)
• Colección de datos interrelacionados, almacenados conjuntamente sin redundancias perjudiciales o innecesarias, la finalidad de las cuales es la de ser utilizadas por una o más
aplicaciones de la mejor manera posible.
Los datos se guardan de forma independiente de los programas que las utilizan.
Se utilizan métodos bien determinados para incluir nuevos
datos y para modificar o extraer los que ya habian. (Martin)
12
Componentes de un
Sistema de Base de Datos
Sistema de Base de Datos. Formado por 4 componentes:
• Hardware
• Software
• Usuarios
• Base de Datos
13
HARDWARE
Componentes:
• Almacenamiento secundario (discos magnéticos, ópticos, dispositivos de E/S, redes).
↓
IMPORTANTE LA CAPACIDAD Y EL TIEMPO DE ACCESO
• Memoria RAM para almacenar datos y código que
permiten ejecutar las transacciones SQL.
↓
IMPORTANTE LA CAPACIDAD Y EL TIEMPOS DE ACCESO
• CPU. La velocidad y capacidad de la CPU es poco
determinante par realizar transacciones SQL, usualmente de poco cálculo (cálculos aritméticos).
14
SOFTWARE
Sistema Gestor de Base de Datos (SGBD) (Data
Base Management System - DBMS)
Situado entre la BD fı́sica y los usuarios.
Componente software más importante.
Objetivos:
• Gestionar las peticiones de los usuarios
– Insertar archivos y datos nuevos
– Consultar datos
– Actualizar datos
– Borrar datos
– Eliminar archivos
• Presentar una visión de más alto nivel de la Base de Datos,
visión más independente del Hardware y del Sistema Operativo, mediante tablas, atributos y un lenguaje de manipulación
de datos (usualmente SQL).
• Protección de los datos:
– respecto otros usuarios.
– en acceso y actualización concurrente.
Otros componentes software:
• Utilidades (manipulación ficheros, información de estado, etc.).
• Herramientas para desarrollar aplicaciones.
15
USUARIOS
Tres tipos diferentes de usuarios:
1. Usuario final
• Interactúa con el sistema mediante terminales on line.
• Accede a la BD mediante aplicaciones e interfı́cies orientadas por menús hechos por los programadores de aplicaciones.
• Interfı́cies orientadas por menús:
– Facilitan la interacción con el usuario.
– No contemplan todas las amplias posibilidades del lenguaje de consulta.
2. Programador de aplicaciones
• Diseña e implementa aplicaciones en lenguajes de programación (C, PASCAL, COBOL, PL/I, etc.) para los
usuarios finales.
• Aplicaciones realizan transacciones a la Base de Datos
mediante código SQL dentro de los ficheros fuente de la
aplicación C, PASCAL, COBOL, PL/I, etc.
3. Administrador de Base de Datos (Data Base Administrator - DBA)
• Encargado del mantenimiento de la información y la estructura de la Base de Datos.
• Configura el SGBD según las polı́ticas de servicios y de
acceso de datos que se decidan.
16
BASE DE DATOS
Componente más importante del Sistema de Base de
Datos.
Importante su correcta estructuración y el mantenimiento
de su contenido.
Aspectos a tener en cuenta:
1. Caracterı́sticas de los datos
2. Tipos de datos
3. Entidades e interrelaciones (diseño – Modelo Entidad/Relación)
4. Tablas y referencias (implementación – Modelo Relacional)
17
1. Caracterı́sticas de los datos
Dos caracterı́sticas importantes de los datos:
INTEGRADAS: La Base de Datos (BD) vista como la unificación
de diferentes datos, eliminando posibles redundancias.
Ejemplo: Tablas Empleats, Inscripció
No es necesario poner el campo Departamento en la relación
Inscripción
COMPARTIDAS: Diferentes usuarios pueden acceder a los mismos datos y utilizarlos con finalidades diferentes (posiblemente con acceso concurrente).
Cada usuario verá los datos y las interpretará de forma diferente.
Ejemplo: Tabla Empleats
Campo Departament en la relación Empleats utilizado de forma
diferente por el departamento de personal (nómina, categorı́a)
o de educación (edad, formación del empleado).
18
2. Tipos de datos
Dos tipos importantes:
• Datos Persistentes: Datos contenidos a la BD.
• Datos Transitorios: Datos que se interrelacionan
con la BD pero que no pertenecen a ella. Dos tipos:
Datos de Entrada: Información que entra por primera vez
en el Sistema. Puede llegar a formar parte de la BD
(inserción, actualización de información).
Información que se quiere insertar a la BD.
Información que se da para hacer una consulta.
Datos de Salida: Mensajes y resultados que provienen del
Sistema.
Información que proviene de los datos persistentes del
Sistema.
Según la clasificación anterior,
Base de Datos: Conjunto de datos persistentes que
representan la realidad de una empresa o organización
que se quiere modelar.
19
3. Entidades e interrelaciones
Muy importantes para realizar el diseño de una Base de
Datos.
Entidades: Cualquier objeto distinguible que se ha de
representar en la Base de Datos.
Interrelaciones: Vinculan diferentes entidades (usualmente dos–interrelación binaria) en ambos sentidos.
Asocia un valor de una entidad con un valor de la
otra entidad (interrelación binaria).
Entidades e interrelaciones llevan asociadas propiedades,
datos asociados.
Ejemplo: Compañı́a fabricante de maquinaria de donde
se guarda información sobre las siguientes entidades:
• Proyectos (máquinas que se construyen)
• Piezas de los proyectos
• Proveedores de las piezas
• Empleados
• Departamentos
• Almacenes
• Lugares
20
*
Cierto proveedor suministra ciertes piezas
Cierta pieza es suministrada por ciertos proveedores
Interrelación permite resolver cuestiones del tipo:
Dado un proveedor
Dada una pieza
→
→
Encontrar las piezas correspondientes
Encontrar los proveedores correspondientes
Tipos de interrelaciones:
(a) Interrelación con la misma entidad
(b) Más de una interrelación entre 2 entidades
(c) Interrelación ternaria
21
(a) Interrelación con la misma entidad
Pueden existir interrelaciones binaries con la misma entidad. Organización jerárquica de datos.
Una pieza puede estar compuesta de otras piezas.
Ejemplo: Frontisa formada por un bis y una tapa.
(b) Más de una interrelación entre 2 entidades
Cada interrelación que relaciona dos entidades tiene un
significado diferente.
22
(c) Interrelación ternaria
Interrelación entre tres entidades.
Ejemplo: (proveedor, piezas, proyectos)
Ciertos proveedores suministran ciertas piezas a ciertos
proyectos
NO ES EQUIVALENTE A:
• PROVEEDORES suministran PIEZAS
• Se utilizan PIEZAS en PROYECTOS
• PROYECTOS reciben subministros de PROVEEDORES
Interrelaciones anteriores son BINARIAS.
23
Ejemplo: Interrelación
PEPE suministra LLAVES INGLESAS en el proyecto
EUREKA
suministra más información (menos incertidumbre) que
las interrelaciones:
PEPE sumistra
LLAVES INGLESAS
→
a algun proyecto Z
Se utilizan LLAVES INGLESAS
en el proyecto EUREKA
→
para algún proveedor SX
PEPE es proveedor del proyecto
EUREKA
→
para alguna pieza P Y
De las interrelaciones anteriores no podemos inferir que
• Z = EUREKA
• SX = PEPE
• P Y = LLAVES INGLESAS
Inferencia falsa: TRAMPA DE CONEXIÓN
24
Propiedades
Campos de información asociados a entidades o a interrelaciones.
A ENTIDADES:
A INTERRELACIONES:
Pieza P4 se encuentra en el almacen M8
↓
Propiedad asociada
Cantidad de piezas almacenadas
25
4. Tablas y referencias
Transformar las entidades e interrelaciones en tablas y referencias
para convertir la estructura de datos al modelo relacional, modelo
implementado en la mayorı́a de SGDB actuales como ACCESS,
ORACLE, INFORMIX.
Aplicar consultas SQL sobre la estructura relacional:
1. Número de las piezas que suministra el proveedor S1 por el
proyecto Eureka.
2. Número de los proectos que dirige el empleado Pepe Pinto,
en los que los suministradores son de Sabadell.
3. Número de piezas P5 que se encuentran en los almacenes de
la Seu de Urgell.
4. Número de los empleados del departamento de diseño que
participan en el proyecto Eureka.
26
Evolución histórica
Evolución de las Bases de Datos ha estado un intento de
organizar la información en computadores de la forma
más eficiente posible.
Cinco etapas históricas:
1. Funciones de acceso a ficheros en código máquina
(60’s)
2. Independencia fichero lógico-fichero fı́sico (70’s)
3. Primeros sistemas de Bases de Datos (80’s)
4. Independéncia lógica y fı́sica de las datos (90’s)
5. Internet y sistemas distribuidos (actualidad)
27
1. Funciones de acceso a ficheros en código
máquina (60’s)
• Organización de ficheros secuencial (cinta magnética).
• Procesamiento batch (flujo de ejecución decidido antes de la
compilación del programa).
• Software: Operaciones E/S definidas en direcciones máquina
($F4ED$).
• Lenguajes: máquina y ensamblador.
• Programador ha de especificar la estructura fı́sica de los datos
(bytes).
• Cambio de los datos → Cambio del código ensamblador.
• Estructura de datos pensada para una sola aplicación.
Dificultad para compartir datos a otras aplicaciones
⇓
REDUNDANCIA
28
2. Independencia fichero lógico-fichero fı́sico
(70’s)
• Procesamiento en interactivo (flujo de ejecución del programa
decidido en tiempo de ejecución).
• Software: Sistema de ficheros, funciones de acceso a fichero
(open, close, read, write) y lenguajes de programación (Pascal, Fortran, Cobol, C).
• Separación entre la organización fı́sica (fichero fı́sico) y lógica
(fichero lógico).
• Estructuras de ficheros:
– Secuencial
– Indexado (acceso directo)
• Datos estructurados por una sola aplicación ⇒ REDUNDANCIA
• Formato registro lógico = formato registro fı́sico.
29
3. Primeros sistemas de Bases de Datos
(80’s)
• Formato registro lógico 6= formato registro fı́sico.
• Sistema orientado a compartición de datos ⇒ Disminución de
redundancia.
• Necesidad de controles de integridad y seguridad debido al
accesos compartido entre diferentes usuarios.
• Almacenamiento fı́sico independiente de programas de aplicación.
• Construcción de nuevos ficheros lógicos sobre los mismos
datos fı́sicos. Necesidad de un conocimiento profundo de la
estructura fı́sica por parte de los programadores de aplicaciones.
• Modificación de la estructura fısica de los datos afecta a la
aplicación, pues la obliga a recompilar el programa para cambiar los links a la estructura fı́sica.
30
4. Independéncia lógica y fı́sica de los
datos (90’s)
• Independencia entre los datos lógicos y los datos fı́sicos.
• Modificación de la estructura de fı́sica de los datos no afecta
a las aplicaciones.
• Aparece la figura del administrador de la Base de Datos.
• Necesidad de controles de integridad y seguridad debido al
accéso compartido entre diferentes usuarios.
• Faciliades en la migración de los datos a diferentes sistemas
y formatos.
• Versatilidad: Posibilidad de realizar preguntas a la Base de
Datos inicialmente no previstas.
31
5. Internet y sistemas distribuidos (2000’s)
• Distribuir los datos en lugares alejados geográficamente (sistemas distribuidos).
• Utilización de Internet como protocolo de comunicación entre
Bases de Datos distribuidas.
• Aplicaciones con php, HTML, cgi, etc. junto con un Sistema
de Bases de Datos para hacer las consultas (MySQL, Oracle,
etc.)
• Aplicaciones de compra y pago por Internet, móvil, PDA, etc.
• Problema de la confidencialidad de los datos por la red.
• Minerı́ a de datos (Data Mining).
32
Ventajas de un
Sistema de Bases de Datos
La centralización de las datos en un Sistema de BD le
confiere ciertas ventajas respecto los sistemas de ficheros
tradicionales:
(a) Reducir la redundancia de datos
(b) Garantizar la integridad de los datos
(c) Estandarización de los datos
(d) Controles de Seguridad
(e) Maximizar el rendimiento del sistema
(f) Independencia de los datos
33
(a) Reducir la redundancia de datos
Redundáncia: Aparece sobre todo en sistemas de organización tradicionales donde cada aplicación tiene sus
propios ficheros. Presenta dos problemas:
• Ocupación innecesaria de disco
• Posible fuente de inconsistencia en el caso de no
propagar las modificaciones
NO OBSTANTE, a veces interesa tener información duplicada en diferentes lugares para mantener el acceso en
caso de averı́a del sistema fı́sico.
Reducir redundancia ⇒ elimina INCONSISTENCIA
34
Inconsistencia
Cuando se obtienen diferentes valores de la misma información.
Consecuencia de mantener redundancia no controlada.
Ejemplo: Dos tablas que tienen como propiedad el
nombre de cliente: Clientes y Facturas.
• Si se modifica la propiedad en una tabla y en la otra
no
⇓
INCONSISTÉNCIA
Si NO HAY REDUNDANCIA ⇒ NO HABRÁ INCONSISTENCIA
Si la redundancia es controlada ⇒ Consistencia BD desde
(mediante DBMS)
punto de vista usuario
⇓
PROPAGACIÓN DE ACTUALIZACIONES
(inserción, modificación, eliminación)
Aplicar automáticamente modificaciones a otras tablas
a partir de la modificación en una tabla.
EN REALIDAD, existen pocos sistemas con redundancia controlada y propagación de actualizaciones, por el
retardo en el tiempo de respuesta de las transacciones.
35
(b) Garantizar la integridad de los datos
INTEGRIDAD: Asegurar que la información en la Base
de Datos sea correcta.
FALTA DE INTEGRIDAD: Puede venir dada por:
1. Inconsistencia
2. Valores incoherentes:
• Jornada de trabajo diaria de 400 horas
• Fecha de 30 de febrero
• Edad de 150 años
Control centralizado de los datos:
• A cada atributo de la Base de Datos se le asocia el conjunto
de valores permitidos (dominio).
• DBMS verificará que en las transacciones de inserción y actualización los valores que se quieren poner en el atributo se
ajustan al dominio definido.
INTEGRIDAD:
• Importante en sistemas multiusuario.
• Generación de información inconsistente o errónea puede suponer un peligro importante para usuarios que consulten información, pues puede dar lugar a toma de decisiones equivocadas.
EN GENERAL, sistemas de BD son en la mayorı́a deficientes en controles de integridad.
36
(c) Estandarización de los datos
Como el DBA tiene control centralizado de la BD, puede
garantizar el cumplimiento de las NORMAS PARA
LOS DATOS:
• Normas de la empresa
• Normas del departamento
• Normas de la industria (producción)
• Normas de documentación
NORMALIZACIÓN DE LOS DATOS: Conveniente
para:
• Intercambio de información
• Migración de datos entre sistemas
• Compartir y comprender la información (documentación de los datos)
37
(d) Controles de Seguridad
DBA (Data Base Administrator): Tiene jurisdicción y
control sobre los datos. Puede garantizar:
• Asegurar y controlar el acceso a la Base de Datos
por los canales apropiados (via SGBD-DBMS).
• Definir controles de seguridad para cuando se quiera
acceder a información delicada. Establecer controles para cada tipo de acceso:
– Consulta
– Modificación
– Actualización
– Borrado
• Controles para el acceso concurrente a los datos.
La centralización de los datos obliga a establecer controles de seguridad.
38
(e) Maximizar el rendimiento del sistema
Centralización de los datos
→
Requerimientos generales del sistema
→
Premisas
conocidas
por el DBA
DBA puede estructurar los datos de forma que las transacciones más importantes y más utilizadas se realicen más
rapidamente que otras transacciones menos usuales.
⇓
Objetivo: Aumentar el rendimiento global del sistema
Medidas de rendimiento:
• Número de transacciones por unidad de tiempo
• Tiempo de respuesta de una transacción tı́pica
• Grado de ocupación de los dispositivos (disco, redes, etc.)
39
(f) Independencia de los Datos
Objectivo principal de las Bases de Datos.
Ventaja de las más importantes de las BD.
Independéncia de los datos: Caracterı́stica de immunidad de las aplicaciones ante cambios en la estructura
de almacenamiento y técnicas de acceso.
CASO OPUESTO: Aplicaciones dependientes de los
datos:
• Aplicaciones orientadas a lenguajes de tercera generación (C, Pascal, Cobol, etc.).
• Organización de los datos (ficheros) dependiente
de los requerimentos de la aplicación
⇓
Conocimiento de la organización de los datos y las
técnicas de accéso forman parte integral de la lógica
y el código de la aplicación.
• formato registro Lógico = formato registro Fı́sico
• Aplicación en la cual es imposible alterar la organización fı́sica de los datos sin afectar la aplicación
(editar y compilar programa).
40
En sistemas de Bases de Datos no es conveniente tener
aplicaciones dependientes de los datos por dos razones
importantes:
1. Cada aplicación requiere una vista diferente de los
mismos datos
Ejemplo: Saldo cliente (dato)
• Vista por una aplicación en PESETAS
• Vista por otra aplicación en EUROS
Dato (saldo) guardada en un ÚNICO FORMATO. DBMS
controla la conversión quan haga falta.
2. DBA ha de tener libertad para modificar la estructura de almacenamiento y las técnicas de acceso
para mejorar el rendimiento, sin haber de modificar las aplicaciones ya existentes
Las siguientes modificaciones no han de comportar cambios
en las aplicaciones
• Añadir nuevos atributos o campos de información a la
base de datos
• Nuevos dispositivos de almacenamiento
• Cambiar la estructura de la Base de datos
41
ASPECTOS DE LA ESTRUCTURA DE LA BASE DE DATOS
MODIFICABLES SIN ALTERAR LAS APLICACIONES
Set aspectes:
1. Representación de datos alfanuméricos
• Formatos ASCII, EBCDIC.
Hay que implementar algoritmos de conversión que utilizará el DBMS.
2. Representación de datos numéricos
• Forma: Aritmética (decimal) o carácteres
• Base: Binaria, decimal
• Escala: Punto fijo, punto flotante
• Modo: Real, complejo
• Precisión (número de dı́gitos)
3. Unidades para los datos numéricos
• Pulgadas, cm, m.
Hay que implementar algoritmos de conversión que utilizará el DBMS.
42
4. Codificación de los datos
Asignación de códigos a la información. Aumenta la capacidad de
compresión de almacenamento.
Ejemplo: Tabla de personal universitario
• Camp: Situación, CHAR(10)
• Valores:
"Estudiante"
"Profesor "
"PAS
"
CON CODIFICACIÓN:
• Campo: Situació, CHAR(1)
•
Valores
Significado
1
2
3
Estudiante
Profesor
PAS
43
5. Materialización de los Datos
Forma de obtener las ocurrencias (valores) de los datos.
Dos formas:
1. DIRECTO: No hay cálculo añadido para obtener los datos
acceso a un atributo lógico ≡ acceso a un campo fı́sico
2. INDIRECTO: Requiere cálculo adicional para obtener información. Estos datos no pueden ser modificados directamente
por el usuario.
acceso a un atributo lógico ≡ acceso a diversos campos
fı́sicos
Ejemplo: Campos Cantidad total de piezas, Promedio de pesos
de las piezas requieren ser calculados en el momento en el
cual se consultan.
6. Estructura de Ficheros
Fichero fı́sico puede ser:
• Contenido en UNA o VARIAS unitades de disco fı́sico
• ORDENADO por cadenas de apuntadores o por diferentes
ı́ndices, o NO ORDENADO
• Tipos de acceso: SECUENCIAL, INDEXADO, HASHING
44
7. Estructuras de los registros almacenados
Dos estrategias:
• COMBINAR registros fı́sicos
– Registro lógico ⇒ subconjunto de campos del registro
fı́sico
• SEPARAR registros fı́sicos
– División permite almacenar información menos accesible o
menos necesaria en dispositivos (discos magnéticos) más
lentos.
– 1 Registro lógico ⇒ n registros fı́sicos
45
Inconvenientes de un
Sistema de Base de Datos
La importancia de los datos para gestión o toma de
decisiones, junto con las capacidades del sistema de BD
presuponen que se confie en estos sistemas para obtener
la información.
NO OBSTANTE, se han de tener en cuenta ciertos
inconvenientes que pueden presentar estos sistemas:
• Pueden surgir problemas de integridad y seguridad si no existe
un buen control de la BD.
• Es necesario hardware adicional par garantizar
– acceso concurrente
– rapidez en el acceso de los datos
lo que supone un alto coste económico si se quiere una cierta
eficiencia.
• Acceso concurrente puede dar lugar a DEADLOCK, lo que
provoca una bajada de rendimiento muy significativa.
• Errores en el sistema de BD (datos, aplicaciones, DBMS)
pueden dar resultados erróneos, pudiendo provocar la adopción
de decisiones importantes erróneas, con las correspondientes
pérdidas.
• SGBD-DBMS: Programa muy complejo, importante y determinante para garantizar la consistencia y validez de los datos.
Requiere ser muy testeado.
46
Descargar