Download Fundamentos de Bases de Datos

Document related concepts

Base de datos wikipedia , lookup

Capa de acceso a datos wikipedia , lookup

Oracle Database wikipedia , lookup

Procedimiento almacenado wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
1.Fundamentos de Bases de Datos
Unidad 1: Introducción a las Bases de Datos y a los Sistemas de Administración de Bases de Datos
1.1 ¿Por qué usar una Base de Datos?
El área de bases de datos ha sido muy importante dentro de la Ciencia de la Computación y más recientemente como parte esencial de
las Tecnologías de Información. Al decir que el mundo vive en la era de la información, lo primero que se viene a la mente es el lugar
donde se almacenan los datos requeridos para producir información, las Bases de Datos. Este término, también, ha pasado de ser un
término técnico a ser un término de uso diario en cualquier ámbito de trabajo en la vida diaria: la escuela, la casa, la oficina. Debido a todo
lo anterior, es necesario el poder aclarar primero estos términos, y contestar las preguntas: ¿Qué es una Base de Datos? ¿Qué es un
Sistema de Administración de Base de Datos? ¿Qué Tecnología existía antes de la aparición de las Bases de Datos? Qué ventajas y
beneficios ofrecen las Bases de Datos y sus Sistemas de Administración comparados con las tecnologías anteriores?.
Este primer módulo le permitirá introducirse al área de Bases de Datos y sus Sistemas asociados, permitiéndole rápidamente conocer
todos sus términos y conceptos. Se presentarán todos los términos necesarios para comprender y aprovechar esta Tecnología. El modulo
termina con la presentación de ejemplos de diferentes Bases de Datos, que le permitirán entender y a la vez diferenciar la manera en la
cual la tecnología de Bases de Datos se aplica en casos de la vida real.
El propósito de una Base de Datos es:
… ayudar a la gente y a las organizaciones a llevar un registro de las cosas, de aquellos objetos acerca de los cuales les in teresa
guardar datos. Estos datos son los que permitirán generar información de esas cosas u objetos. Para comprender por qué es
importante este almacenamiento de datos, se puede primero analizar qué problemas se presentan cuando se utilizan sólo datos, sin
la estructura que ofrece una Base de Datos:
–
Al tener sistemas aislados, con diferentes medios en los cuales se almacena información, un mismo dato puede estar
almacenado en diferentes lugares.
–
Al estar el mismo dato almacenado en diferentes lugares, puede tener diferentes valores en esos diferentes lugares, lo
que puede provocar inconsistencias, si no se logra tener esas copias con la información consistente.
–
La privacidad de datos se ve afectada, debido a que los departamentos necesitan compartir datos, pero no todos los que
custodian, solo los que consideran pueden compartir, creando problemas al no contar con todo lo que necesitan, aunque
la empresa pueda tenerlos disponibles.
En la siguiente figura se observa que los sistemas en base a archivos manejan archivos separados, provocando los problemas de
redundancia antes mencionados:
En contraste, las bases de datos almacenan los datos en tablas simples, donde cada una de ellas está definida para apoyar un
tema o área especifica. Esto permite mantener una definición sencilla, y un uso sencillo de la tabla, en consecuencia. Las tablas
poseen una estructura que permite relacionarlas fácilmente entre sí, a través del uso de llaves, o campos comunes, que permiten
una navegación sencilla y natural a través de ellas, siempre y cuando su diseño sea el correcto.
En la siguiente figura se muestra lo que es una arquitectura de base de datos, donde se observa que los datos son
independientes de los programas que los utilizan, lo que ofrece beneficios al eliminar los problemas de redundancia.
¿CUÁNDO SE REQUIERE USAR UN SISTEMA DE ADMINISTRACIÓN DE BASES DE DATOS?
Las ventajas de utilizar una Base de Datos, a través del software de administración, se puede entender claramente en los siguientes
casos:
1.
Una base de datos permite almacenar grandes volúmenes de datos, con un mínimo de datos duplicados. Esto permite tener un
acceso rápido y eficiente a los mismos, cuando se requiere obtener información a partir de ellos. Al estar almacenados en un
lugar común, es factible aplicar reglas de integridad, que permite validar su consistencia.
2.
La información almacenada en una base de datos se integra eficientemente, y no posee limitaciones impuestas por la
organización de la empresa. Esta integración permite que los datos seas usados eficientemente, y con un mínimo de problemas
de integridad, por diferentes usuarios y departamentos en toda la organización. Esto le ofrece como beneficio a un administrador
tener acceso a datos a los cuales antes no tenía acceso, por estar almacenados en diferentes medios y sistemas.
3.
Un beneficio muy importante se asocia a la calidad en los servicios de datos. La base de datos permite tener una durabilidad y
permanencia de los datos que no es cuestionable. Otro aspecto relacionado a esta ventaja es que las transacciones que se
ejecutan directamente sobre la base de datos quedan registradas permanentemente, lo que permite su acceso posterior, para
cualquier consulta, o para la protección ante cualquier falla del sistema.
4.
En teoría, una base de datos dura indefinidamente, hasta que se decide guardarla en un ambiente fuera del uso directo de un
sistema, o se decide borrarla definitivamente.
5.
La durabilidad de una base de datos permite la recuperación de los datos a un estado estable, antes de ocurrir la falla. Esto da la
seguridad necesaria para ofrecer datos confiables a cualquier sistema de misión crítica de una empresa, como sería el sistema
en línea de ventas, o en general, cualquier sistema en línea, tal como los que forman un negocio basado en Internet.
6.
Un Sistema de Administración de Bases de Datos permite compartir los datos de una Base de Datos sencilla y eficientemente, a
una comunidad de usuarios diferentes. Las vistas son el medio que el software de administración de base de datos ofrece para
que un grupo de usuarios tenga acceso solo a la porción de la base de datos a la cual ellos tienen derecho de acceso. De la
misma forma, para un equipo de desarrollo de una aplicación, una vista le permite el acceso a solo los datos que tienen derecho,
de acuerdo a los requerimientos que el sistema bajo desarrollo debe resolver.
7.
El acceso concurrente a los datos es otra de las ventajas. Este acceso permite que diferentes usuarios, a través de sus
aplicaciones, accedan a los datos, mezclando sus operaciones, con la seguridad que las mismas serán ejecutadas de tal forma
que no se afecten negativamente entre sí. Esta es una condición indispensable para el uso de una base de datos desde Internet.
viene el acceso no autorizado a la base de datos, los mensajes se encriptan de tal forma que es casi imposible decodificarlos.
Con esto se ofrece un ambiente seguro, que permite trabajar de manera confiable con la base de datos.
1.2 ¿Qué es una base de datos?
Manejo de Datos en Base a Archivos
El manejo de información en computadoras se remonta a los años 60’s, cuando se inicia el uso masivo de las computadoras. La creación
de sistemas que manejaron los datos de áreas de negocios fue muy intuitiva, siendo una gran responsabilidad de los desarrolladores de
los mismos. La tecnología disponible en esos primeros años del uso de las computadoras, no permitió el manejo de los datos de una
manera muy formal y eficiente. De ese manejo inicial de los datos, se definió lo que hoy se conoce como el manejo de datos en base a
archivos.
Sistemas en Base a Archivos.
Se caracterizaron por el manejo de los datos en función de la aplicación y del área a la que apoyaban, asi como del personal que
desarrolló esos sistemas.
Se definen como: “colección de programas de aplicación que ofrecen servicios para sus usuarios finales”. El servicio más común
era la generación de reportes para esos usuarios.
Un característica esencial de esos sistemas era el que cada programa (por lo tanto cada sistema) definía y manejaba sus propios datos.
Esta característica dio oportunidad a que se presentara su principal debilidad, la redundancia de los datos, y por consecuencia, la posible
fuente de inconsistencias.
Un sistema en base a archivos se observa en la siguiente figura:
Limitaciones del Enfoque para el Manejo de Datos en Base a Archivos
El manejo de los datos en base a archivos presenta limitaciones muy importantes, para el desarrollo rápido y eficiente de los mismos, así
como en su operación. La operación de estos sistemas ofreció (y ofrece aún) limitaciones que provocan problemas en su implantación:

La separación y aislamiento de los datos y los programas
o
Cada programa mantiene su propio conjunto de datos a mantener y a utilizar. Esto provoca la creación de “islas”, donde
los datos se manejan aislados, limitados en el uso a los sistemas que los definieron.
o
Los usuarios de un programa pueden no estar concientes de que los datos que usan en su programa, pudieran estar
repetidos y estar siendo usados en otros programas.

La duplicación de datos.
o
Los mismos datos se utilizan en diferentes programas.
o
Desperdicio del espacio de almacenamiento, y más importante aún, el poder consultar diferentes valores para el mismo
dato, al estar este dato duplicado en diferentes programas, sin un control para su acceso.

Dependencia de datos
o
La estructura de los datos/archivos es definida de acuerdo a cada programa, por lo que si los programas se definen en
diferentes lenguajes de programación, y por lo tanto en diferentes formatos, su integración es muy difícil.

Formatos de datos/archivos incompatibles
o
Los programas escritos en diferentes lenguajes no permiten el acceso a datos almacenados en formatos diferentes al
lenguaje de un lenguaje particular.

La generación sin control de programas de aplicación y de programas de consultas
o
Los programas están escritos para satisfacer las funciones particulares de un programa, sin saber si existe un programa
equivalente en otro sistema.
o
Cualquier nuevo requerimiento de un usuario, requiere del desarrollo de un nuevo programa.
¿Por qué aparecen las Bases de Datos?
Las bases de datos fueron la respuesta a la necesidad de atender las limitaciones y problemas que provocaron los sistemas en base a
archivos.
La aparición de las bases de datos obedeció entonces a:
–
De acuerdo a lo que los sistemas en base a archivos propusieron, los datos estaban completamente integrados a los
programas de aplicación que los definieron, en lugar de estar definidos y almacenados en un lugar separado e
independiente de los programas.
–
No existía un control en el acceso a los datos, y a la manipulación de los mismos, más allá de los controles impuestos
por los mismos programas de aplicación.
Como resultado de lo anterior, aparecieron las bases de datos, y el software definido para su uso, los sistemas de administración o gestión
de bases de datos (Database Management System o DBMS).
¿Qué es una Base de Datos?
La Tecnología de Bases de Datos es hoy un elemento común en la mayoría de todas las aplicaciones de computadoras o tecnología de
Información, sin importar el tipo de aplicación, o el giro de la compañía, sea un sistema financiero en un banco, un sistema de punto de
venta en un supermercado, o un sistema de control de producción en una empresa manufacturera. En todos los casos, elementos
comunes de Tecnología de Información son tanto las Bases de Datos como los Sistemas de Administración de Bases de Datos
requeridos.
La gente interactúa normalmente con Bases de Datos y sus tecnologías asociadas. Para dejar en claro estos términos y tecnologías, se
definen a continuación, para aclarar los temas principales que se cubren en este curso.
Datos
Antes de definir que es una Base de Datos es primordial entender que es un dato. Los datos son hechos, que sirven para describir a
objetos, gente, o eventos. Son la materia prima utilizada para producir información.
Base de Datos
Para hablar de una definición de base de datos se debe primero entender algunos requerimientos que deben ser resueltos:

La necesidad de compartir datos, entre diferentes usuarios, y que los datos presenten una relación entre ellos, y que estén
diseñados para cumplir las necesidades de información de la empresa, y de las diferentes partes que la forman.

Una definición de los datos integrada, que ofrezca una definición de los mismos, para poder tener la independencia requerida
entre los datos de la empresa, y los programas de aplicación que los van a utilizar.

Se requiere de un modelo que represente los datos de la empresa, compuesta comúnmente por entidades, atributos, y
relaciones.
Esto permite tener la primera definición de una base de datos:
Es una colección integrada, de datos relacionados. Dicho de otra forma: colección autodescrita de registros relacionados o tablas.
Algunos de sus componentes son:
–
Datos del usuario
–
La Metadata, o datos acerca de la estructura de la base de datos misma
–
Indices y estructuras de datos relacionadas
–
Procedimientos almacenados (Stored procedures), o programas o módulos almacenados dentro de la base de datos, y
que sirven para su manipulación
–
Triggers, o procedimientos que se ejecutan cuando ocurre un evento o actividad particular sobre la base de datos
–
Metadata de aplicaciones, o datos que permiten describir las aplicaciones que se ejecutan sobre la base de datos
Dos características son esenciales en la definición de una Base de Datos:

Datos relacionados.
–
Esta característica implica el que los datos representan hechos, relacionados lógicamente, acerca de aspectos del
mundo real que son de interés para el área que apoya una aplicación. Por ejemplo, los datos que se necesitan en una
Base de Datos orientada al área de administración de una empresa, en la cual se manejan datos de: clientes, pedidos
que los clientes realizan, los artículos que los pedidos incluyen, el surtido de los pedidos, la facturación a los clientes de
sus pedidos entregados, los pagos que los clientes realizan sobre sus facturas, etc. Lo mismo se puede hacer para
describir los datos que se manejan en el área de manufactura de una empresa.

Datos integrados.
–
Esta característica implica que los datos para múltiples aplicaciones se almacenan juntos, y pueden ser manipulados de
igual forma por dichas aplicaciones. Al estar almacenados juntos, los datos puedes compartirse, permitiendo que
múltiples aplicaciones las utilicen, sin hablar de fronteras, que establecen normalmente barreras artificiales para este uso
compartido. Un buen ejemplo es la información que se genera cuando un área de la empresa registra la información de
una orden interna para la compra de un producto. Esta información es compartida y utilizada por el área interna de
compras, que genera una orden de compra al proveedor, quien surte la orden que será recibida en el almacén, y cuya
información comparte con contabilidad, que la requiere para sus registros. Las cuentas por pagar atienden las facturas
de los proveedores, en base a la información de los pedidos entregados. Esto ejemplifica la necesidad y la facilidad para
compartir estos datos.
–
Ventaja del enfoque de uso de una base de datos
Un beneficio muy importante asociado al uso de los bases de datos es:

El acceso controlado a los datos. Esto redunda en beneficios asociados por el uso de
o
Un sistema de seguridad, que permita el uso de la base de datos solo por el personal autorizado para el uso de la
base de datos.
o
Un sistema de control de la integridad, que permita que los datos almacenados cumplan con las reglas de integridad
definidas para los mismos, y que garanticen a su ves la integridad y consistencia de la base de datos
o
Un sistema de control de concurrencia., que permita la ejecución de transacciones concurrentes sobre la base de
datos, sin perder la integridad de los datos almacenados.
o
Un sistema de recuperación, que permita que la base de datos sea restablecida a un estado correcto o válido de la
base de datos, justo antes de que una falla interrumpiera su uso por parte de los programas de aplicación
o
Un mecanismo de vistas, que permita a los usuarios solo acceder a los datos que ellos necesitan usar.
De la discusión de los conceptos de bases de datos se desprende la importancia de hablar de un Sistemas de Administración Bases de
Datos, por lo que se incluye este concepto, para su discusión a la luz del concepto de bases de datos. Este concepto será posteriormente
presentado.
Sistema de Administración de Base de Datos.
Un Sistema de Administración de Base de Datos, o DBMS, (por sus siglas en inglés, Database Management System) es de manera
sencilla, software para la creación y administración de bases de datos, y sus sistemas asociados, en una computadora.

Las funciones principales de un DBMS son:
–
La creación de bases de datos, sus tablas componentes, y las estructuras de apoyo asociadas
–
Permitir la lectura y escritura de los datos almacenados en una base de datos
–
Permitir el mantenimiento a las estructuras de una base de datos
–
Forzar el cumplimiento de las reglas de integridad definidas para una base de datos
–
Mantener el control de concurrencia a los datos, cuando se presenta la ejecución concurrente de transacciones a la base
de datos
–
Ofrecer los mecanismos de seguridad para el acceso a las bases de datos definidas y mantenidas en el DBMS
–
Ofrecer las facilidades de respaldo y recuperación de las bases de datos, necesarias para garantizar la seguridad e
integridad de las bases de datos manejadas por el DBMS

Ejemplos de DBMSs comerciales: Oracle, DB2, Microsoft Access, SQL Server
Conclusiones:
El concepto de bases de datos es fundamental en el manejo de información en una aplicación de negocios. Su importancia no es
cuestionable, si se analiza a la luz de los sistemas de información actuales, que requieren ser utilizados en un ambiente de operación
basado en Internet.
El concepto de base de datos nace junto con la tecnología de software desarrollada para su definición, uso y administración, los sistemas
de administración de bases de datos o DBMSs. Para poder hacer que las expectativas del uso de una base de datos se cumplan, es
indispensable el contar con los DBMSs. Su importancia crece al integrar este software cada vez más y más funcionalidades, que le
permiten al personal de desarrollo de aplicaciones, desarrollarlas de manera eficiente y rápida.
1.3 ¿Qué es un Sistema de Base de Datos y un Sistema de Administración de Bases de Datos?
¿Cuál es el propósito de una Base de Datos
… ayudar a la gente y a las organizaciones a llevar un registro de las cosas, de aquellos objetos acerca de los cuales les interesa
guardar datos. Estos datos son los que permitirán generar información de esas cosas u objetos. Para comprender por que es
importante este almacenamiento de datos, se puede primero analizar que problemas se presenta cuando se utilizan solo datos sin la
estructura que ofrece una Base de Datos:
–
Al tener sistemas aislados, con diferentes medios en los cuales se almacena información, un mismo dato puede estar
almacenado en diferentes lugares
–
Al estar el mismo dato almacenado en diferentes lugares, puede tener diferentes valores en esos diferentes lugares, lo
que puede provocar inconsistencias, si no se logra tener esas copias con la información consistente
–
La privacidad de datos se ve afectada, debido a que los departamentos necesitan compartir datos, pero no todos los
datos que tienen en su área, sino solo los que consideran pueden compartir, creando problemas al no compartirlos, o no
contar con todo lo que necesitan, aunque la empresa pueda tenerlos disponibles.
En contraste, las bases de datos almacenan los datos en tablas simples, donde cada una de ellas está definida para apoyar un
tema o área especifica. Esto permite mantener una definición sencilla, y un uso sencillo de la tabla, en consecuencia. Las tablas
poseen una estructura que permite relacionarlas fácilmente entre si, a través del uso de llaves, o campos comunes, que permiten
una navegación sencilla y natural a través de ellas, siempre y cuando su diseño sea el correcto.
Qué es un Sistema de Base de Datos y un Sistema de Administración de Base de Datos
Estos términos darán finalmente la primera imagen para comprender mejor el contenido de este curso.
Un Sistema de Administración de Base de Datos (Database Management System, o DBMS, po rsus siglas en Inglés) es una colección
de programas que permiten definir, planear, organizar y controlar el acceso y uso de una Base de Datos. Ofrece a sus usuarios las
interfases requeridas para: crear, mantener y manipular diferentes bases de datos., así como también para implantar sistemas de Bases
de Datos, para diferentes aplicaciones dentro de la empresa. Es un software entonces de propósito general.

Las funciones principales de un DBMS son:
–
Crear una base de datos, sus tablas y estructuras de soporte
–
Crear y actualizar los datos de una Base de Datos
–
Mantener en operación las estructuras de una base de datos
–
Forzar el cumplimiento de las reglas de integridad sobre los datos
–
Control de concurrencia
–
Seguridad de las Bases de Datos
–
Ejecutar procesos de recuperación y respaldo sobre la Base de Datos
Un sistema de Base de Datos es software desarrollado para soportar las operaciones de una organización específica, o de un área
específica dentro de una organización. .Un sistema de Base de Datos se compone de:

La base de datos desarrollada específicamente para la aplicación o área de negocio

EL DBMS que crea y mantiene la Base de Datos

El Software de aplicación que maneja la Base de Datos.
¿CUÁNDO SE REQUIERE USAR UN SISTEMA DE ADMINISTRACIÓN DE BASES DE DATOS?
Las ventajas de utilizar una Base de Datos, a través del software de administración, se puede entender claramente en los siguientes
casos:
1.
Una base de datos permite almacenar grandes volúmenes de datos, con un mínimo de datos duplicados. Esto permite tener un
acceso rápido y eficiente a los mismos, cuando se requiere obtener información a partir de ellos. Al estar almacenados en un
lugar común, es factible aplicar reglas de integridad, que permite validad sus consistencia.
2.
La información almacenada en una base de Datos se integra eficientemente, y no posee limitaciones impuestas por la
organización de la empresa. Esta integración permite que los datos seas usados eficientemente, y con un mínimo de problemas
de integridad, por diferentes usuarios y departamentos en toda la organización. Esto le ofrece como beneficio a un administrador
tener acceso a datos a los cuales antes no tenía acceso, por estar almacenados en diferentes medios y sistemas.
3.
Un beneficio muy importante se asocia a la calidad en los servicios de datos. La base de datos permite tener una durabilidad y
permanencia de los datos que no es cuestionable. Otro aspecto relacionado a esta ventaja es que las transacciones que se
ejecutan directamente sobre la base de datos quedan registradas permanentemente, lo que permite su acceso posterior, para
cualquier consulta, o para la protección ante cualquier falla del sistema.
4.
En teoría, una base de datos dura indefinidamente, hasta que se decide guardarla en un ambiente fuera del uso directo de un
sistema, o se decide borrarla definitivamente.
5.
La durabilidad de una base de datos permite la recuperación de los datos a un estado estable, antes de ocurrir la falla. Esto da la
seguridad necesaria para ofrecer datos confiables a cualquier sistema de misión crítica de una empresa, como sería el sistema
en línea de ventas, o en general, cualquier sistema en línea, tal como los que forman un negocio basado en Internet.
6.
Un Sistema de Administración de Bases de Datos permite compartir los datos de una Base de Datos sencilla y eficientemente, a
una comunidad de usuarios diferentes. Las vistas son el medio que el software de administración de base de datos ofrece para
que un grupo de usuarios tenga acceso solo a la porción de la base de datos a la cual ellos tienen derecho de acceso. De la
misma forma, para un equipo de desarrollo de una aplicación, una vista le permite el acceso a solo los datos que tienen derecho,
de acuerdo a los requerimientos que el sistema bajo desarrollo debe resolver.
7.
El acceso concurrente a los datos es otra de las ventajas. Este acceso permite que diferentes usuarios, a través de sus
aplicaciones, accedan a los datos, mezclando sus operaciones, con la seguridad que las mismas serán ejecutadas de tal forma
que no se afecten negativamente entre si. Esta es una condición indispensable para el uso de una base de datos desde Internet.
Finalmente, la seguridad. Este es un componente crítico en cualquier base de datos que puede ser accesada por Internet. Las técnicas de
seguridad y métodos de acceso que una base de datos ofrece hoy soy de tal forma seguros que el uso es de tal forma natural para todos
los que acceden directamente a la misma. Se previene el acceso no autorizado a la base de datos, los mensaje se encriptan de tal forma
que es casi imposible decodificarlos. Con esto se ofrece un ambiente seguro, que permite trabajar de manera confiable con la base de
datos