Seguridad de las bases de
datos
- Sentencias de
SQL - Sistema gestor de una base de
datos - Arquitectura interna de una
base de datos - Conceptos relacionados con la
base de datos - Correspondencia entre
niveles - Aplicación
de cambios en la base de datos - Cambio de
tamaño de la base de datos - Descomposición
y normalización - Subconsultas
1. Todo el contenido de la
tabla
Select * from Materia
2. Solo dos campos de la tabla anterior
(materia y
calificación)
SELECT Materia,Calificacion from Materia
3. Cantidad de registros en la
tabla (count)
SELECT count (Materia) from Materia
4. Promedio del campo
"calificación" (avg)
select avg (Calificacion) from Materia
5. Desplegar los registros que inicien
con "M"
select * from Materia where Materia = "M"
6. Desplegar los registros con
calificación menor a 9
select * from Materia where Calificación
<9
7. Desplegar los registros con
calificación mayor a 6
Select * from Materia where
Calificación>6
8. Desplegar cuya calificación se
encuentra entre 6y8
select * from Materia where Calificacion between 6 and
8
9. Desplegar un registro
especifico
Select * from Materia where Idmateria=2
10. Desplegar los registros cuyas
califiación sea de 8
Select * from Materia where
Calificación=8
11. Actualizar un registro
Esto lo hice al ultimo
UPDATE Materia SET Materia="mate" where
Materia="Matematicas"
Y asi quedo después de actualizarlo
12. Borrar un registro
Esto lo hice al ultimo
DELETE from Materia where Materia="mate"
Después de borrar un registro
13.Borrar una base de datos
Lo hice con otra base de datos
database-drop
O bien se busca la base de datos
y se da clic derecho elegir eliminar y listo
14. Borrar una tabla
Lo hice con diferente tabla
table-drop
En Access se
escribe la siguiente sentencia para borrar una tabla
DROP table maria
15. Desplegar los 3 primeros registros
de una tabla
select top 3 Idmateria,Matricula,
Nombre,Materia,Calificacion from Materia
16. Desplegar todos los campos que
tengan una calificación mayor que 7 y que se han de una
materia especifica
select * from Materia where Calificación>7 and
Materia="Matematicas"
17. Obtener los valores
máximos del campo calificación o
promedio
Select max (Calificación) from Materia
18. Obtener el valor
mínimo del campo calificación o promedio
Select min (Calificación) from Materia
19. Calcular la suma del campo
calificación o promedio
Select sum (Calificación) from Materia
20. Desplegar los registros cuya
califiación sea distinta de 7
Select *from Materia where not
Calificación=7
LO DE LA
LIBRETA
Producto cartesiano
Relacionar cada registro de una tabla con cada uno de
otra tabla.
R
A | B | C |
a | 1 | f |
b | 3 | d |
a | 2 | b |
A | B | C |
a | 2 | b |
b | 1 | f |
a | 2 | d |
T
B | C | D |
a | 3 | b |
a | 1 | f |
b | 1 | d |
b | 2 | b |
a | 1 | d |
R CP S
R.A | R.B | R.C | S.A | S.B | S.C |
a | 1 | f | a | 2 | b |
a | 1 | f | b | 1 | f |
a | 1 | f | a | 2 | d |
b | 3 | d | a | 2 | b |
b | 3 | d | b | 1 | f |
b | 3 | d | a | 2 | d |
a | 2 | b | a | 2 | b |
a | 2 | b | b | 1 | f |
a | 2 | b | a | 2 | d |
S CP T
S.A | S.B | S.C | T.B | T.C | T.D |
a | 2 | b | a | 3 | b |
a | 2 | b | a | 1 | f |
a | 2 | b | b | 1 | d |
a | 2 | b | b | 2 | b |
a | 2 | b | a | 1 | d |
b | 1 | f | a | 3 | b |
b | 1 | f | a | 1 | f |
b | 1 | f | b | 1 | d |
b | 1 | f | b | 2 | b |
b | 1 | f | a | 1 | d |
a | 2 | d | a | 3 | b |
a | 2 | d | a | 1 | f |
a | 2 | d | b | 1 | d |
a | 2 | d | b | 2 | b |
a | 2 | d | a | 1 | d |
R CP T
R.A | R.B | R.C | T.B | T.C | T.D |
a | 1 | f | a | 3 | b |
a | 1 | f | a | 1 | f |
a | 1 | f | b | 1 | d |
a | 1 | f | b | 2 | b |
a | 1 | f | a | 1 | d |
b | 3 | d | a | 3 | b |
b | 3 | d | a | 1 | f |
b | 3 | d | b | 1 | d |
b | 3 | d | b | 2 | b |
b | 3 | d | a | 1 | d |
a | 2 | b | a | 3 | b |
a | 2 | b | a | 1 | f |
a | 2 | b | b | 1 | d |
a | 2 | b | b | 2 | b |
a | 2 | b | a | 1 | d |
Selección solo en una tabla
JOIN se hace después de un producto
cartesiano
Después se hace la selección
R JN T
R.B =T.C
a | i | f |
a | 1 | f |
a | 1 | f |
b | 3 | d |
a | 2 | b |
a | i | f |
b | 1 | d |
a | 1 | d |
a | 3 | b |
b | 2 | b |
EJEMPLOS DE JOIN
PERSONAL
MATERIA
Después se realiza el JOIN
PERSONAL JN MATERIA
PERSONAL.NOMBRE=MATERIA.NOMBRE
Se realiza el producto cartesiano de PERSONAL CP
MATERIA
Sentencia de JOIN
SELECT * from PERSONAL,MATERIA where
PERSONAL.NOMBRE=MATERIA.NOMBRE
GUSTOS
Se realiza primero el producto cartesiano
DESPUES EL JOIN
PERSONAL JN GUSTOS
PERSONAL.NOMBRE=GUSTOS.NOMBRE
SENTENCIA
SELECT * from PERSONAL,GUSTOS where
PERSONAL.NOMBRE=GUSTOS.NOMBRE
3.1.1. "SISTEMA GESTOR DE
UNA BASE DE DATOS"
Son programas que se
ocupan de acceder y actualizar las DBS. Actúan como
interfase entre el programa de
aplicación y la DB. Por ejemplo, cuando un programa debe
actualizar una información en el DB, no lo hace
directamente, si no que le pide al DBMS para hacerlo, pues este
es quien conoce como es el DB por dentro.
Un sistema de gestión
de base de datos, es una forma de almacenar la información
de tal manera que se eviten la duplicación de datos. Las
bases de datos
relacionales son aquellas que guardan la información en
modo de tablas.
OBJETIVOS DE LOS SISTEMAS DE
GESTION DE BASE DE DATOS
Las funciones de los
S.G.B.D. son:
1.- Debe permitir la definición de todos los
datos.
2.- Debe permitir manipular datos.
3.- Debe establecer controles para la seguridad de
estos.
4.- Debe permitir los accesos concurrentes.
SUBLENGUAJES DE S.Q.L.:
L.D.D. Lenguaje de
descripción de datos.
L.M.D. Lenguaje de manipulación de
datos.
L.C.M. Lenguaje de control de
datos.
OBJETIVOS S.G.B.D.:
1.- Definición de datos: (modifica
la estructura o
añade campos). La misión del
L.D.D. es describir y definir todos los esquemas que participen
en la base de datos. Esto consiste en la descripción de
los objetos que vamos a representar. La descripción de
todas las estructuras
que formen nuestra base de datos.
Definición de vista: es una
visión parcial de la tabla. <<cuando en una tabla
alguna parte de esta no quiero que tenga derecho a manipularla
nadie>>
2.- Manipulación de datos: L.M.D.
recoge todas las operación de intercambio de datos entre
las tablas, estas operaciones
pueden ser de consulta o de puesta al día
(inserción, modificación, supresión) estas
operaciones se realizan con la ayuda del denominado
L.M.D.
-consultas
operaciones
-insertar datos
-puesto al día – modificar datos
-suprimir datos
GESTION DE LOS ACCESOS CONCURRENTES
El principal objetivo de la
implantación de una base de datos es poner a
disposición de un gran número de usuarios en
conjunto integrado de datos, estos datos podrán ser
manipulados por los diferentes usuarios y es ahora cuando se debe
garantizar la coherencia de los datos después de las
diversas manipulaciones. Esto se garantiza con la ayuda del
concepto de
transacción <<se define como transacción a
una unida lógica
de tratamiento que aplicada a un estado
coherente de una base de datos restituye un nuevo estado
coherente de la base de datos pero con estos modificados,
únicamente puede ser modificada completamente
anulado>>.
CONCEPCION DE UNA BASE DE DATOS
El ciclo de vida
de una base de datos puede descomponerse en 3 etapas:
1.- Concepción: la fase de
concepción consiste en reproducir el mundo real con ayuda
de uno de los modelos de
datos conocidos (relacional). El resultado de esta fase en un
esquema escrito según un formalismo cualquiera no
interpretable por el S.G.B.D.
2.-Creación de la B.D.
vacía: La 2ª fase consiste en traducir este
esquema en órdenes comprensibles para el S.G.B.D. como
resultado se obtiene la estructura de la base de datos
desprovista de cualquier tipo de información.
3.-Explotación: Es en esta fase
donde los registros serán manipulados con la ayuda de los
lenguajes de
programación. Es ahora cuando los usuarios pueden
consultar los datos y ponerlos a punto durante el resto de la
vida de la base de datos.
PROBLEMAS ADQUIRIDOS POR UNA MALA CONCEPCION DE UNA
BASE DE DATOS.
En las tablas hay que procurar que no haya duplicidad de
datos:
1.-Redundancia de datos: si un cliente ha
realizado mas de un pedido todos los datos de este cliente
estarán repetidos tantas veces como pedidos haya, lo mismo
sucede para los artículos esto es opuesto al principal
objetivo de una base de datos que consiste en evitar la
repetición de los mismos.
2.-Puestas al día múltiple:
Para poder asegurar
la coherencia de los datos es necesario efectuar puestas a
día múltiples. <<Cuando un cliente cambia de
dirección>>
3.- Incoherencia de los datos: Si una
operación de puesta al día múltiple no se ha
realizado completamente el estado de
la base de datos queda incoherente y puede producir errores
importantes.
4.-Perdida de datos: La supresión
de una línea en la tabla de pedidos entraña la
perdida de todos los datos relativos a un cliente si no ha
efectuado ningún otro pedido. Esto es cierto
también para un articulo que no se pedido por
ningún otro cliente. Estas anormalidades constituyen lo
que se ha convenido en llamar<<comportamiento
anormal de las tablas>>, para evitar esto existe un
proceso
llamado <<normalización>> que entre otras cosas
intenta establecer los conceptos de <<dependencia funcional
y estado de las tablas>>.
5.- Dependencia funcional: Este concepto
se aplica a las columnas y consiste en hacer corresponder un
único valor a aquella columna o columnas que consideramos
más significativas.
6.- Estado de la tabla: Se dice que una
tabla esta en estado de 1ª forma normal si toda columna de
esta tabla no puede tener mas que valores
atómicos, un valor es atómica si el no es
divisible.
La arquitectura de
un sistema de base de datos se divide en 3 niveles comunes, nivel
interno, conceptual y externo.
Nivel Interno: Es el mas cercano al almacenamiento
físico, es decir, es el que se ocupa de la forma como se
almacenan físicamente los datos.
Nivel Externo: Es el mas cercano a los usuarios,
es decir, es el que se ocupa de la forma como los usuarios
reciben los datos.
Nivel Conceptual: Es el nivel de mediación
entre los 2 anteriores:
Externo (aplicaciones)
Conceptual (modelo,
(entidad/relación))
Interno (Hardware)
SISTEMA GESTOR DE UNA
BASE DE DATOS
Los SGBD son paquetes de software muy complejo y
sofisticado que deben proporcionar los servicios
comentados en la sección anterior. No se puede generalizar
sobre los elementos que componen un SGBD ya que varían
mucho unos de otros. Sin embargo, es muy útil conocer sus
componentes y cómo se relacionan cuando se trata de
comprender lo que es un sistema de bases de datos.
Un SGBD tiene varios módulos, cada uno de los
cuales realiza una función
específica. El sistema operativo
proporciona servicios básicos al SGBD, que es construido
sobre él.
El procesador de consultas es el componente
principal de un SGBD. Transforma las consultas en un conjunto de
instrucciones de bajo nivel que se dirigen al gestor de la base
de datos.
El gestor de la base de datos es el interfase con
los programas de aplicación y las consultas de los
usuarios. El gestor de la base de datos acepta consultas y
examina los esquemas externo y conceptual para determinar
qué registros se requieren para satisfacer la
petición. Entonces el gestor de la base de datos realiza
una llamada al gestor de ficheros para ejecutar la
petición.
El gestor de ficheros maneja los ficheros en
disco en donde se almacena la base de datos. Este gestor
establece y mantiene la lista de estructuras e índices
definidos en el esquema interno. Si se utilizan ficheros
dispersos, llama a la función de dispersión para
generar la dirección de los registros. Pero el gestor de
ficheros no realiza directamente la entrada y salida de datos. Lo
que hace es pasar la petición a los métodos de
acceso del sistema operativo que se encargan de leer o escribir
los datos en el buffer del sistema.
El preprocesador del LMD convierte las sentencias
del LMD embebidas en los programas de aplicación, en
llamadas a funciones estándar escritas en el lenguaje
anfitrión. El preprocesador del LMD debe trabajar con el
procesador de
consultas para generar el código
apropiado.
El compilador del LDD convierte las sentencias
del LDD en un conjunto de tablas que contienen metadatos. Estas
tablas se almacenan en el diccionario de
datos.
El gestor del diccionario controla los accesos al
diccionario de
datos y se encarga de mantenerlo. La mayoría de los
componentes del SGBD acceden al diccionario de datos.
Los principales componentes del gestor de la base de
datos son los siguientes:
Control de autorización. Este
módulo comprueba que el usuario tiene los permisos
necesarios para llevar a cabo la operación que
solicita.
Procesador de comandos. Una
vez que el sistema ha comprobado los permisos del usuario, se
pasa el control al procesador de comandos.
Control de la integridad. Cuando una
operación cambia los datos de la base de datos, este
módulo debe comprobar que la operación a realizar
satisface todas las restricciones de integridad
necesarias.
Optimizador de consultas. Este módulo
determina la estrategia
óptima para la ejecución de las
consultas.
Gestor de transacciones. Este módulo
realiza el procesamiento de las transacciones.
Planificador (scheduler). Este módulo es
el responsable de asegurar que las operaciones que se realizan
concurrentemente sobre la base de datos tienen lugar sin conflictos.
Gestor de recuperación. Este módulo
garantiza que la base de datos permanece en un estado consistente
en caso de que se produzca algún fallo.
Gestor de buffers. Este módulo es el
responsable de transferir los datos entre memoria principal
y los dispositivos de
almacenamiento secundario. A este módulo
también se le denomina gestor de datos.
Funciones de los sistemas de
gestión de bases de datos
Codd, el creador del modelo relacional, ha establecido
una lista con los ocho servicios que debe ofrecer todo
SGBD.
Un SGBD debe proporcionar a los usuarios la capacidad de
almacenar datos en la base de datos, acceder a ellos y
actualizarlos. Esta es la función fundamental de un SGBD y
por supuesto, el SGBD debe ocultar al usuario la estructura
física
interna (la
organización de los ficheros y las estructuras de
almacenamiento).
Un SGBD debe proporcionar un catálogo en el que
se almacenen las descripciones de los datos y que sea accesible
por los usuarios. Este catálogo es lo que se denomina
diccionario de datos y contiene información que describe
los datos de la base de datos (meta datos). Normalmente, un
diccionario de datos almacena:
Nombre, tipo y tamaño de los datos.
Nombre de las relaciones entre los datos.
Restricciones de integridad sobre los datos.
Nombre de los usuarios autorizados a acceder a la base
de datos.
Esquema externo, conceptual e interno, y correspondencia
entre los esquemas.
Estadísticas de utilización, tales como la
frecuencia de las transacciones y el número de accesos
realizados a los objetos de la base de datos.
Algunos de los beneficios que reporta el diccionario de
datos son los siguientes:
La información sobre los datos se puede almacenar
de un modo centralizado. Esto ayuda a mantener el control sobre
los datos, como un recurso que son.
El significado de los datos se puede definir, lo que
ayudará a los usuarios a entender el propósito de
los mismos.
La comunicación se simplifica ya que se
almacena el significado exacto. El diccionario de datos
también puede identificar al usuario o usuarios que poseen
los datos o que los acceden.
Las redundancias y las inconsistencias se pueden
identificar más fácilmente ya que los datos
están centralizados.
Se puede tener un historial de los cambios realizados
sobre la base de datos.
El impacto que puede producir un cambio se
puede determinar antes de que sea implementado, ya que el
diccionario de datos mantiene información sobre cada tipo
de dato, todas sus relaciones y todos sus usuarios.
Se puede hacer respetar la seguridad.
Se puede garantizar la integridad.
Se puede proporcionar información para auditorias.
Un SGBD debe proporcionar un mecanismo que garantice que
todas las actualizaciones correspondientes a una determinada
transacción se realicen, o que no se realice ninguna. Una
transacción es un conjunto de acciones que
cambian el contenido de la base de datos. Una transacción
en el sistema informático de la empresa
inmobiliaria sería dar de alta a un empleado o eliminar un
inmueble. Una transacción un poco más complicada
sería eliminar un empleado y reasignar sus inmuebles a
otro empleado. En este caso hay que realizar varios cambios sobre
la base de datos. Si la transacción falla durante su
realización, por ejemplo porque falla el hardware, la base
de datos quedará en un estado inconsistente. Algunos de
los cambios se habrán hecho y otros no, por lo tanto, los
cambios realizados deberán ser deshechos para devolver la
base de datos a un estado consistente.
Un SGBD debe proporcionar un mecanismo que asegure que
la base de datos se actualice correctamente cuando varios
usuarios la están actualizando concurrentemente. Uno de
los principales objetivos de
los SGBD es el permitir que varios usuarios tengan acceso
concurrente a los datos que comparten. El acceso concurrente es
relativamente fácil de gestionar si todos los usuarios se
dedican a leer datos, ya que no pueden interferir unos con otros.
Sin embargo, cuando dos o más usuarios están
accediendo a la base de datos y al menos uno de ellos está
actualizando datos, pueden interferir de modo que se produzcan
inconsistencias en la base de datos. El SGBD se debe encargar de
que estas interferencias no se produzcan en el acceso
simultáneo.
Un SGBD debe proporcionar un mecanismo capaz de
recuperar la base de datos en caso de que ocurra algún
suceso que la dañe. Como se ha comentado antes, cuando el
sistema falla en medio de una transacción, la base de
datos se debe devolver a un estado consistente. Este fallo puede
ser a causa de un fallo en algún dispositivo hardware o un
error del software, que hagan que el SGBD aborte, o puede ser a
causa de que el usuario detecte un error durante la
transacción y la aborte antes de que finalice. En todos
estos casos, el SGBD debe proporcionar un mecanismo capaz de
recuperar la base de datos llevándola a un estado
consistente.
Un SGBD debe proporcionar un mecanismo que garantice que
sólo los usuarios autorizados pueden acceder a la base de
datos. La protección debe ser contra accesos no
autorizados, tanto intencionados como accidentales.
Un SGBD debe ser capaz de integrarse con algún
software de comunicación. Muchos usuarios acceden a la
base de datos desde terminales. En ocasiones estos terminales se
encuentran conectados directamente a la máquina sobre la
que funciona el SGBD. En otras ocasiones los terminales
están en lugares remotos, por lo que la
comunicación con la máquina que alberga al SGBD se
debe hacer a través de una red. En cualquiera de
los dos casos, el SGBD recibe peticiones en forma de mensajes y
responde de modo similar. Todas estas transmisiones de mensajes
las maneja el gestor de comunicaciones
de datos. Aunque este gestor no forma parte del SGBD, es
necesario que el SGBD se pueda integrar con él para que el
sistema sea comercialmente viable.
Un SGBD debe proporcionar los medios
necesarios para garantizar que tanto los datos de la base de
datos, como los cambios que se realizan sobre estos datos, sigan
ciertas reglas. La integridad de la base de datos requiere la
validez y consistencia de los datos almacenados. Se puede
considerar como otro modo de proteger la base de datos, pero
además de tener que ver con la seguridad, tiene otras
implicaciones. La integridad se ocupa de la calidad de los
datos. Normalmente se expresa mediante restricciones, que son una
serie de reglas que la base de datos no puede violar. Por
ejemplo, se puede establecer la restricción de que cada
empleado no puede tener asignados más de diez inmuebles.
En este caso sería deseable que el SGBD controlara que no
se sobrepase este límite cada vez que se asigne un
inmueble a un empleado.
Además, de estos ocho servicios, es razonable
esperar que los SGBD proporcionen un par de servicios
más:
Un SGBD debe permitir que se mantenga la independencia
entre los programas y la estructura de la base de datos. La
independencia de datos se alcanza mediante las vistas o
subesquemas. La independencia de datos física es
más fácil de alcanzar, de hecho hay varios tipos de
cambios que se pueden realizar sobre la estructura física
de la base de datos sin afectar a las vistas. Sin embargo, lograr
una completa independencia de datos lógica es más
difícil. Añadir una nueva entidad, un atributo o
una relación puede ser sencillo, pero no es tan sencillo
eliminarlos.
Un SGBD debe proporcionar una serie de herramientas
que permitan administrar la base de datos de modo efectivo.
Algunas herramientas trabajan a nivel externo, por lo que
habrán sido producidas por el administrador de
la base de datos. Las herramientas que trabajan a nivel interno
deben ser proporcionadas por el distribuidor del SGBD. Algunas de
ellas son:
Herramientas para importar y exportar datos.
Herramientas para monitorizar el uso y el funcionamiento
de la base de datos.
Programas de análisis estadístico para examinar
las prestaciones o
las estadísticas de
utilización.
Herramientas para reorganización de
índices.
Herramientas para aprovechar el espacio dejado en el
almacenamiento físico por los registros borrados y que
consoliden el espacio liberado para reutilizarlo cuando sea
necesario.
Clasificación de los
sistemas de gestión de bases de datos
El criterio principal que se utiliza para clasificar los
SGBD es el modelo lógico en que se basan. Los modelos
lógicos empleados con mayor frecuencia en los SGBD
comerciales actuales son el relacional, el de red y el jerárquico.
Algunos SGBD más modernos se basan en modelos orientados a
objetos.
El modelo relacional se basa en el concepto
matemático denominado “relación", que
gráficamente se puede representar como una tabla. En el
modelo relacional, los datos y las relaciones existentes entre
los datos se representan mediante estas relaciones matemáticas, cada una con un nombre que es
único y con un conjunto de columnas.
En el modelo relacional la base de datos es percibida
por el usuario como un conjunto de tablas. Esta percepción
es sólo a nivel lógico (en los niveles externo y
conceptual de la arquitectura de tres niveles), ya que a nivel
físico puede estar implementada mediante distintas
estructuras de almacenamiento.
En el modelo de red los datos se representan como
colecciones de registros y las relaciones entre los datos se
representan mediante conjuntos, que
son punteros en la implementación física. Los
registros se organizan como un grafo: los registros son los nodos
y los arcos son los conjuntos. El SGBD de red más popular
es el sistema IDMS.
El modelo jerárquico es un tipo de modelo
de red con algunas restricciones. De nuevo los datos se
representan como colecciones de registros y las relaciones entre
los datos se representan mediante conjuntos. Sin embargo, en el
modelo jerárquico cada nodo puede tener un solo padre. Una
base de datos jerárquica puede representarse mediante un
árbol: los registros son los nodos, también
denominados segmentos, y los arcos son los conjuntos. El SGBD
jerárquico más importante es el sistema
IMS.
La mayoría de los SGBD comerciales actuales
están basados en el modelo relacional, mientras que los
sistemas más antiguos estaban basados en el modelo de red
o el modelo jerárquico. Estos dos últimos modelos
requieren que el usuario tenga conocimiento
de la estructura física de la base de datos a la que se
accede, mientras que el modelo relacional proporciona una mayor
independencia de datos. Se dice que el modelo relacional es
declarativo (se especifica qué datos se han de obtener) y
los modelos de red y jerárquico son navegacionales (se
especifica cómo se deben obtener los datos).
El modelo orientado a objetos define una base de
datos en términos de objetos, sus propiedades y sus
operaciones. Los objetos con la misma estructura y comportamiento
pertenecen a una clase, y las
clases se organizan en jerarquías o grafos
acíclicos. Las operaciones de cada clase se especifican en
términos de procedimientos
predefinidos denominados métodos. Algunos SGBD
relacionales existentes en el mercado han
estado extendiendo sus modelos para incorporar conceptos
orientados a objetos. A estos SGBD se les conoce como sistemas
objeto-relacionales
Un segundo criterio para clasificar los SGBD es el
número de usuarios a los que da servicio el
sistema. Los sistemas monousuario sólo atienden a
un usuario a la vez, y su principal uso se da en los ordenadores
personales. Los sistemas multiusuario, entre los que se
encuentran la mayor parte de los SGBD, atienden a varios usuarios
al mismo tiempo.
Un tercer criterio es el número de sitios en los
que está distribuida la base de datos. Casi todos los SGBD
son centralizados: sus datos se almacenan en un solo
computador.
Los SGBD centralizados pueden atender a varios usuarios, pero el
SGBD y la base de datos en sí residen por completo en una
sola máquina. En los SGBD distribuidos la base de
datos real y el propio software del SGBD pueden estar
distribuidos en varios sitios conectados por una red. Los SGBD
distribuidos homogéneos utilizan el mismo SGBD en
múltiples sitios. Una tendencia reciente consiste en crear
software para tener acceso a varias bases de datos
autónomas preexistentes almacenadas en SGBD
distribuidos heterogéneos. Esto da lugar a los SGBD
federados o sistemas multibase de datos en los que
los SGBD participantes tienen cierto grado de autonomía
local. Muchos SGBD distribuidos emplean una arquitectura
cliente-servidor.
Un cuarto criterio es el coste del SGBD. La mayor parte
de los paquetes de SGBD cuestan entre 10.000 y 100.000 euros. Los
sistemas monousuario más económicos para
microcomputadores cuestan entre 100 y 3.000 euros. En el otro
extremo, los paquetes más completos cuestan más de
100.000 euros.
Por último, los SGBD pueden ser de
propósito general o de propósito
específico. Cuando el rendimiento es fundamental, se
puede diseñar y construir un SGBD de propósito
especial para una aplicación específica, y este
sistema no sirve para otras aplicaciones. Muchos sistemas de
reservas de líneas aéreas son SGBD de
propósito especial y pertenecen a la categoría de
sistemas de procesamiento de transacciones en línea
(OLTP), que deben atender un gran número de transacciones
concurrentes sin imponer excesivos retrasos.
"CONCEPTOS RELACIONADOS CON LA BASE DE
DATOS"
NIVEL EXTERNO: Es el nivel
del usuario individual, es decir, los usuarios pueden ser
programadores en algunos casos usuarios finales, cada usuario
dispone de un lenguaje y en el caso de un programador. Dispone de
un lenguaje convencional. En el caso de un usuario final,
será un lenguaje de consulta o un lenguaje orientado hacia
los usuarios. El punto importante de todos estos lenguajes es que
debe incluir un sublenguaje de datos del cuàl
estarà inmerso o dentro de un lenguaje anfitrión,
un lenguaje dado, cualquier va ha permitir el empleo de
varios lenguajes anfitriones y varios sublenguajes para
datos.
EJEMPLO:
Lenguaje VB ò <<C>> >>>>
Lenguaje Anfitrión.
Acces >>>>> Sublenguaje.
DBSE >>>>> Lenguaje
Arquitectónico.
ASSIST >>>> SUB-LENGUAJE.
SQL >>>> sub-lenguaje.
NIVEL CONCEPTUAL: La vista
conceptual es una presentaciòn de toda la
información contenida en la base de datos. Ademàs
puede ser muy diferente en la forma en que percibe los datos
cualquier usuario final, es decir, debe ser un panorama de los
datos. Tal como son y no como los percibe los usuarios. Debido a
las limitaciones del lenguaje o bien al equipo que se esta
utilizando.
El nivel conceptual se define mediante un esquema
conceptual el cuàl incluye la definición de cada
uno de los tipos de registros (entidades), ademàs, el
esquema conceptual no debe asociarse a representaciones de campos
almacenados tales como punteros, índices, etc., si el
esquema conceptual se desarrolla en forma independiente de los
datos entonces el esquema externo definido en base al esquema
conceptual será tambièn independiente de los
datos.
NIVEL INTERNO:
Representación de bajo nivel de toda la base de
datos, se compone de varias ocurrencias, de varios tipos de
registros, el nivel interno todavía esta aùn paso
del nivel físico ya que no se manejan los registros fijos.
La vista interna se define a tràves de un esquema interno
el cuàl no sòlo define los diversos tipos de
registros almacenados, si no, tambièn específica
los índices asociados, representación de los campos
almacenados, secuencia física de los registros,
etc.
"CORRESPONDENCIA ENTRE
NIVELES"
1.- LA CORRESPONDENCIA ENTRE NIVEL EXTERNO Y NIVEL
CONCEPTUAL: Es la que existe entre una
determinada Vista Externa y la Vista Conceptual. La diferencia
que puede existir entre estos dos niveles son similares a las que
pueden existir entre la vista conceptual y la vista
interna.
EJEMPLO: Los campos pueden
tener distintos tipos de datos,
los nombres de los campos y registros pueden diferir entre si
pueden combinarse varios campos conceptuales para formar un campo
externo.
2.- CORRESPONDENCIA ENTRE EL NIVEL CONCEPTUAL Y EL
NIVEL INTERNO:
Es la que existe entre la vista conceptual y la vista
interna específica como se representan los registros y los
campos conceptuales, si se modifica la estructura de la Base de
Datos, es decir, nivel interno, debe tambièn modificarse
la correspondencia para no variar el esquema
conceptual.
Como se sabe el DBA es la persona que toma
decisiones estratégicas y políticas
con respecto a la información de la empresa,
ademàs de diseñar los aspectos técnicos
necesarios para poner en pràctica estas decisiones, es
decir, será encargado del control general del problema a
nivel técnico, ademàs otras funciones
podrían ser:
1.- Definir el
Nivel Conceptual y
2.- Definir Entidades
y Relaciones,
3.- Definir el
Esquema Interno,
ademàs, de decir
como se representa
la información
en la base de
datos.
4.- Vinculación con
los usuarios
encargándose de la
comunicación con estos, garantizando la disponibilidad de los datos y ademàs describir los esquemas externos necesarios
(aplicaciones).
"CONCEPTOS BASES DE
DATOS"
1.1 Definición de Base de Datos
Todo buen curso necesita empezar con algunos conceptos
básicos para el mejor entendimiento del mismo, por lo
tanto empezaremos con las definiciones que involucran a las bases
de datos:
Dato: Conjunto de caracteres con algún
significado, pueden ser numéricos, alfabéticos o
alfanuméricos.
Información: Es un conjunto ordenado de
datos los cuales son manejados según la necesidad del
usuario, para que un conjunto de datos pueda ser procesado
eficientemente y pueda dar lugar a información, primero se
debe guardar lógicamente en archivos.
Conceptos básicos de archivos
computacionales
Campo: Es la unidad más pequeña a
la cual uno puede referirse en un programa. Desde el punto de
vista del programador representa una característica de un
individuo u
objeto.
Registro: Colección de campos de iguales o
diferentes tipos.
Archivo: Colección de registros
almacenados siguiendo una estructura homogénea.
Base de datos: Es una colección de
archivos interrelaciónales, son creados con un DBMS. El
contenido de una base de datos engloba a la información
concerniente (almacenadas en archivos) de una organización, de tal manera que los datos
estén disponibles para los usuarios, una finalidad de la
bases de datos es eliminar la redundancia o al menos minimizarla.
Los tres componentes principales de un sistema de base de datos
son el hardware, software DBMS y los datos a manejar, así
como el personal encargado del manejo del sistema.
Sistema Manejador de Base de Datos.
(DBMS)
Interrelacionadas, cada una de las cuales es responsable
de una tarea especifica.
El objetivo primordial de un sistema manejador base de
datos es proporcionar un contorno que sea a la vez conveniente y
eficiente para ser utilizado al extraer, almacenar y manipular
información de la base de datos.
Todas las peticiones de acceso a la base, se maneja
centralizadamente por medio del DBMS, por lo que este paquete
funciona como interfase entre los usuarios y la base de
dato.
Esquema de base de datos: Es la estructura por la
que esta formada la base de datos, se especifica por medio de un
conjunto de definiciones que se expresa mediante un lenguaje
especial llamado lenguaje de definición de datos.
(DDI).
Administrador de base de datos (DBA): Es la
persona o equipo de personas profesionales responsables del
control y manejo del sistema de base de datos, generalmente
tienen experiencia en DBMS, diseño
de bases de datos, sistemas
operativos, comunicación de datos, hardware y programación.
Los sistemas de base de datos se diseñan para
manejar grandes cantidades de información, la
manipulación de los datos involucra tanto la
definición de estructuras para el almacenamiento de la
información como la provisión de mecanismos para la
manipulación de la información, además un
sistema de base de datos debe de tener implementados mecanismos
de seguridad que garanticen la integridad de la
información, a pesar de caídas del sistema o
intentos de accesos no autorizados.
Un objetivo principal de un sistema de base de datos es
proporcionar a los usuarios finales una visión abstracta
de los datos, esto se logra escondiendo ciertos detalles de
cómo se almacenan y mantienen los datos.
1.2 Objetivos de los sistemas de bases de
datos
Los objetivos principales de un sistema de bases de
datos es disminuir los siguientes aspectos:
Redundancia e inconsistencia de datos: Puesto que
los archivos que mantienen almacenada la información son
creados por diferentes tipos de programas de aplicación
existe la posibilidad de que si no se controla detalladamente el
almacenamiento, se pueda originar un duplicado de
información, es decir que la misma información sea
más de una vez en un dispositivo de almacenamiento. Esto
aumenta los costos de
almacenamiento y acceso a los taos, además de que puede
originar la inconsistencia de los datos-es decir diversas copias
de un mismo dato no concuerdan entre si-, por ejemplo: que se
actualiza la dirección de un cliente en un archivo y que en
otros archivos permanezca la anterior.
Dificultad para tener acceso a los
datos:
Un sistema de base de datos debe contemplar un entorno
de datos que le facilite al usuario el manejo de los mismos.
Supóngase un banco, y que uno
de los gerentes necesita averiguar los nombres de todos los
clientes que
viven dentro del código postal 787333 de la ciudad. El
gerente pide
al departamento de procesamiento de
datos que genere la lista correspondiente.
Puesto que esta situación no fue prevista en el
diseño del sistema, no existe ninguna aplicación de
consulta que permita este tipo de solicitud, esto ocasiona una
deficiencia del sistema.
Aislamiento de los datos: Puesto que los datos
están repartidos en varios archivos, y estos no pueden
tener diferentes formatos, es difícil escribir nuevos
programas de aplicación para obtener los datos
apropiados.
Anomalías del acceso concurrente: Para
mejorar el funcionamiento global del sistema y obtener un tiempo
de respuesta más rápido, muchos sistemas permiten
que múltiples usuarios actualicen los datos
simultáneamente. En un entorno así la interacción de actualizaciones concurrentes
puede dar pos resultado datos inconsistentes. Para prevenir esta
posibilidad debe mantenerse alguna forma de supervisión en el sistema.
Problemas de seguridad: La información de
toda empresa es importante, aunque unos datos lo son mas que
otros, por tal motivo se debe considerar el control de acceso a
los mismos, no todos los usuarios pueden visualizar alguna
información, por tal motivo para que un sistema de base de
datos sea confiable debe de mantener un grado de seguridad que
garantice la autentificación y protección de los
datos. En un banco por ejemplo, el personal de nominas solo
necesita empleados del banco y no a otro tipo de
información.
Problemas de integridad: Los valores de datos
almacenados en la base de datos deben satisfacer cierto tipo de
restricciones de consistencia. Esta restricciones se hacen
cumplir en el sistema añadiendo códigos apropiados
en los diversos programas de aplicación.
1.3 Abstracción de la
información
Una base de datos es en esencia una colección de
archivos relacionados entre si, de la cual los usuarios pueden
extraer información sin considerar las fronteras de los
archivos.
Un objetivo importante de un sistema de base de datos es
proporcionar a los usuarios una visión abstracta de
los datos, es decir, el sistema esconde ciertos detalles de
cómo se almacenan y mantiene los datos. Sin embargo para
que el sistema sea manejable, los datos se deben extraer
eficientemente.
Existe diferentes niveles de abstracción para
simplificar la interacción de los usuarios con el sistema;
interno, conceptual y externo, específicamente el de
almacenamiento físico, el del usuario y el del
programador.
Nivel físico: Es la representación
del nivel mas bajo de abstracción, en este se describe en
detalle la forma en como se almacenan los datos en los
dispositivos de almacenamiento (por ejemplo, mediante
señaladotes o indices para el acceso aleatorio a los
datos).
Nivel conceptual: El siguiente nivel mas alto de
abstracción, describe que datos son almacenados realmente
en la base de datos y las relaciones que existen entre los
mismos, describe la base de datos completa en términos de
su estructura de diseño. El nivel conceptual de
abstracción lo usan los administradores de bases de datos,
quienes deben decidir que información se va a guardar en
la base de datos.
Consta de las siguientes definiciones:
1.- Definición de los datos: Se describen
el tipo de datos y la longitud de campo todos los elementos
direccionales en la base. Los elementos por definir incluyen
artículos elementales (atributos), totales de datos y
registros conceptuales (entidades).
1.- Relaciones entre datos: Se definen las
relaciones entre datos para enlazar tipos de registros
relacionados para el procesamiento de archivos múltiples.
En el nivel conceptual la base de datos aparece como una
colección de registros lógicos, sin descriptores de
almacenamiento. En realidad los archivos conceptuales no existen
físicamente. La transformación de registros
conceptuales a registros físicos para el almacenamiento se
lleva a cabo por el sistema y es transparente al
usuario.
Nivel de visión: Nivel mas alto de
abstracción, es lo que el usuario final puede visualizar
del sistema terminado, describe solo una parte de la base de
datos al usuario acreditado para verla. El sistema puede
proporcionar muchas visiones para la misma base de
datos.
Nivel interno o físico: Se refiere al
almacenamiento físico en el se describe como se almacenan
realmente los datos en memorias
secundarias, en que archivos, su nombre y dirección.
También estarán los registros, longitud, campos,
indices y las rutas de acceso a esos archivos.
Nivel conceptual: En el se describen cuales son
los datos reales almacenados en la BD y que relaciones existen
entre ellas. Este nivel lo definen los administradores de la BD
que son los que deciden que información se guarda en la
BD. Este nivel corresponde a la estructura
organizacional de los datos obtenida al reunir los
requerimientos de todos los usuarios, sin preocuparse de su
organización física ni de las vías de
acceso.
Podría contener:
- Entidades del mundo real (clientes, artículos,
pedidos,…) - Atributos de las entidades (nombre_cliente,
NIF,…) - Asociaciones entre entidades (compra de
artículos) - Restricciones de integridad (son las normas que
deben cumplir los datos).
Nivel externo o vistas. Es el nivel más
cercano al usuario y representa la percepción individual
de cada usuario. Si los niveles interno y conceptual describen
toda la BD, este nivel describe únicamente la parte de
datos para un usuario o grupo de
usuarios. Habrá usuarios que podrán acceder a mas
de un esquema externo y uno de estos puede ser compartido por
varios usuarios, se protege así el acceso a los datos por
parte de personas no autorizadas. A la hora de construir un
esquema externo:
- Se pueden omitir una o más entidades del
sistema. - Se pueden omitir uno o más atributos de una
entidad. - Se pueden omitir una o mas relaciones entre los
datos. - Se pueden cambiar el orden de los
atributos.
Para una BD habrá un único esquema
interno, un único esquema conceptual, pero puede haber
varios esquemas externos.
Página siguiente |