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 |