240 likes | 614 Views
Procesamiento de Datos. Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated. Visión de los Datos.
E N D
Procesamiento de Datos Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated
Visión de los Datos • Un sistema de Base de Datos es una colección de datos interrelacionados y un conjunto de programas que permiten a los usuarios tener acceso a los datos y modificarlos. • Una de las principales finalidades de los sistemas de BD es ofrecer a los usuarios una visión abstracta de los datos, es decir, el sistema oculta ciertos detalles del modo en como se almacenan y mantienen los datos. • Se ocultan la complejidad a los usuarios mediante varios niveles de abstracción para simplificar la interacción de los usuarios con el sistema: Nivel de Vistas …… Vista 1 Vista 2 Vista N Nivel Lógico Nivel Físico
Modelos de Datos • Bajo la estructura de las BD se encuentra el modelo de datos, que es una colección de herramientas conceptuales para describir los datos, sus relaciones, su semántica y las relaciones de consistencia. • Los modelos de datos pueden clasificarse en cuatro categorias diferentes: • Modelo Relacional: Usa una colección de tablas para representar tanto los datos como sus relaciones. Cada tabla tiene varias columnas y cada columna tiene un nombre único. Este modelo esta basado en registros. Cada tabla contiene registros, cada registro contiene un número fijo de campos o attributos. Las columnas de la tabla corresponden a los atributos del registro. Ampliamente usado. • Modelo Entidad-Relación (E-R): Se basa en una percepción del mundo real. Ampliamente usado. • Modelo de datos Orientado a Objetos: El modelo de datos OO es otro modelo que esta teniendo una utilización creciente. Es una extensión del E-R sumada la encapsulación. • Modelo de Datos Semiestructurado: XML.
Lenguajes de Bases de Datos • Los Sistemas de BD proporcionan un lenguaje de definición de datos para especificar el esquema de la BD y un lenguaje de manipulación de datos para expresar las consultas y la manipulación de la BD. • En la práctica, los lenguajes de definición y manipulación de los datos no son dos lenguajes diferentes, simplemente forman parte de un único lenguaje de BD, como por ejemplo SQL. • Lenguaje de Manipulación de Datos (LMD): El LMD es un lenguaje que permite a los usuarios tener acceso a los datos organizados mediante el modelo de datos correspondiente o manipularlos. Los tipos de acceso son: • La recuperación de la información almacenada en la BD • La inserción de información nueva en la BD • El borrado de la información de la BD • La modificación de la información almacenada en la BD
Restricciones de Integridad de las BD • Restricciones de Dominio: Se debe asociar un dominio de valores posible a cada atributo, por ejemplo: enteros, carácter, fecha/hora, etc.. La declaración de un atributo como parte de un dominio concreto actúa como restricción de los valores que puede adoptar. Esta es la forma más elemental de restricción de integridad. • Integridad Referencial: Hay casos en los que se desea asegurar que un valor que aparece en una relación para un conjunto de atributos dado aparece también para un conjunto de atributos de una relación. Por ejemplo, NDEPTO de EMPLEADO debe coincidir con el DNUMERO de alguna tupla de la relación DEPARTAMENTO: • Autorización: Se pueden diferenciar los usuarios en cuanto al tipo de acceso que se les puede dar a las distintas BD o tablas de estas. Las modalidades más frecuentes de autorización son: lectura, inserción, eliminación, actualización. para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos.
Bases de Datos Relacionales Las BD relacionales se basan en el modelo relacional y usan un conjunto de tablas para representar tanto los datos como las relaciones entre ellos. Incluyen un LMD y un LDD. La mayor parte de las BD utilizan el lenguaje SQL. • Tablas Una BD posee una o muchas tablas, cada tabla tiene varias columnas y cada columna tiene un nombre único. Por ejemplo: Clientes El modelo relacional es un ejemplo de modelo basado en registros de formato fijo de varios tipos. Cada tabla contiene registros de un tipo dado. Cada tipo de registros define un número fijo de campos o atributos. Las columnas de la tabla corresponden a los atributos del registro. Las tablas pueden ser almacenadas en archivos, delimitando los atributos de la tabla.
Arquitectura de Bases de Datos • Hoy en día la mayor parte de los usuarios de los sistemas de BD no esta presente en el lugar físico en que se encuentra el sistema de BD, si no que se conectan a el a través de una red. • Las aplicaciones de BD suelen dividirse en 2 o 3 partes, o mejor dicho en una arquitectura de dos o tres capas. • En una arquitectura de dos capas la aplicación se divide en una componente que reside en la máquina cliente, que llama a la funcionalidad del sistema de BD en la máquina servidora mediante instrucciones del lenguaje de consultas. • Los estándares de interfaces de programas de aplicación como ODBC y JDBC se usan para la interacción entre el cliente y el servidor. • En una arquitectura tres capas, la máquina cliente actúa simplemente como una parte visible al usuario y no contiene ninguna llamada directa a la BD. La funcionalidad anterior es derivada al servidor de aplicaciones, quien posee la lógica del negocio.
Arquitectura de dos y tres capas Arquitectura de dos capas Arquitectura de tres capas Usuario Usuario Lógica de Negocio Cliente Aplicación Cliente de Aplicaciones RED RED Lógica de Negocio Servidor de Aplicaciones Sistema de BD Servidor Sistema de BD
Administrador de BD • Una de las principales razones de usar SGBS es tener un control centralizado tanto de los datos como de las aplicaciones que tienen acceso a esos datos. La persona que tiene ese control sobre la BD se denomina Administrador de BD, cuyas funciones son: • Definición del Esquema • La modificación del esquema, y de la organización física (rendimiento). • La concesión de la autorización para el acceso a los datos. • El mantenimiento rutinario. • Copia de seguridad • Espacio libre en disco • Supervisar trabajos sobre la BD y verificar que el rendimiento no se degrade.
Bases de Datos Relacionales • Un modelo de datos es un conjunto de herramientas conceptuales para la descripción de los datos, las relaciones entre ellos, su semántica y las restricciones de consistencia. • El modelo relacional utiliza un conjunto de tablas para representar tanto los datos como las relaciones entre ellos. • Estructura básica. Consideremos la siguiente tabla CUENTA: En esta tabla podemos visualizar 3 columnas o atributos: Cuenta, Nombre_Sucursal y Saldo. Para cada atributo hay un conjunto de valores permitidos, denominado dominio de ese atributo.
SQL • IBM desarrolló la versión original de SQL, llamada Sequel, como parte del proyecto System R a principios de los 70’s. • Sequel ha evolucionado en el tiempo y su nombre a pasado a ser SQL. • SQL Structured Query Languaje, Lenguaje Estructurado de Consultas • Hoy numerosos productos son compatibles con SQL y se ha establecido como estándar para las BD relacionales. • En 1986, ANSI (American National Standards Institute) e ISO (International Standards Organization) publicaron una norma SQL, denominada SQL-86. La versión más reciente es SQL-2003.
SQL • El SQL tiene varios componentes: • Lenguaje de Definición de Datos (LDD). Proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificación de los esquemas de la relación. • Lenguaje de Manipulación de Datos (LMD). El LMD de SQL incluye un lenguaje de consultas basado en álgebra relacional. También contiene comandos para insertar, modificar y eliminar tuplas. • Integridad. El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la BD. Las actualizaciones que violan las restricciones de integridad se rechazan. • Definición de Vistas. Se incluyen comandos de definición de Vistas. • Control de Transacciones. SQL incluye comandos para especificar el comienzo y fin de las transacciones. • SQL Dinámico e Incorporado. Definen como se pueden incorporar instrucciones de SQL en lenguajes de programación de propósito general, como C, C++, Java, Cobol, etc.. • Autorización. EL LDD de SQL incluye comandos para especificar los derechos de acceso a las tablas y las vistas.
Tipos Básicos de Dominio (LDD) • SQL provee una gran variedad de tipos de dominio predefinidos, entre ellos: • Char(n). Una cadena de caracteres de longitud fija, con una longitud n. También se puede utilizar character. • Varchar(n). Una cadena de caracteres de longitud variable, con una longitud máxima de n. • Int. Un entero. También integer. • Smallint. Un entero pequeño. • Numeric(p,d). Un número con decimal, p dígitos con d decimales. • Real. Número con coma flotante. • Float(n). Un número de coma flotante cuya precisión es al menos n dígitos.
Definición Básica de Esquemas en SQL • Las tablas o relaciones se definen mediante el comando create table: Create table r (A1D1, A2D2, …AnDn, <restricción de integridad1>, <restricción de integridad2>) Dentro de las restricciones de integridad está por ejemplo, la especificación de una clave primaria.
Definición de datos en SQL Create table cliente (nombre_cliente char(20), rut_cliente char(11), edad numeric(2), primary key (rut_cliente))
Operaciones Básicas en SQL • Si queremos insertar un registro en una tabla usamos el comando INSERT Insert into cliente values (‘Juan’, ‘1-9’,21) • Para borrar registros o tuplas de una tabla se debe utilizar el comando DELETE. Delete from cuenta (where nombre_cliente=‘Juan’) • Para eliminar una tabla de la BD se utiliza el comando DROP Drop table cliente • Si queremos añadir campos o atributos a una tabla utilizaremos el comando ALTER TABLE Alter table cliente add comuna char(30)
Ejercicio El supermercado “El Abarrote” posee una variedad de productos para ofrecerles a su distinguida clientela, además, de contar con precios muy convenientes. Se cuenta con un sistema de puntos para los clientes, premiando su fidelidad. Se desea construir una BD con las siguientes tablas: Clientes ( rut_cli, nombre, dirección, comuna, total_puntos) Ventas(numero_boleta, rut_cajero, rut_cliente, valor_venta) Cajeros(rut_cajero, nombre, dirección, comuna) Utilizando SQL, se desea: • Crear esquemas • Insertar 5 clientes creados por Ud., uno de ellos con rut 2-7. • Eliminar cliente 2-7 • Agregar el campo teléfono en tabla cliente
Estructura básica de las consultas en SQL Las consultas habituales en SQL tienen la siguiente forma: Select A1, A2, A3,.., An From r1,r2,…,rm Where P La cláusula select se corresponde con la operación de proyección del álgebra relacional. La cláusula from corresponde al producto cartesiano del álgebra relacional. La cláusula where corresponde al predicado selección del álgebra relacional.
La Cláusula Select • Consideremos la consulta simple del siguiente ejemplo: Seleccionar todas las sucursales de la tabla préstamo. Select nombre_sucursal From prestamo El resultado es una lista del único atributo de la tabla préstamo llamado nombre_sucursal • En caso en que se desee forzar la eliminación de los valores duplicados, se inserta la clave distinct después del select. Select distinct nombre_sucursal From préstamo • SQL permite utilizar la palabra claver all para especificar de manera explícita que no se eliminen los valores duplicados. Select all nombre_sucursal From préstamo
La Cláusula Select • El símbolo * se utiliza para denotar “todos los atributos” Select * From prestamo El resultado es una lista de todos los atributos de la tabla préstamo. • La cláusula Select puede contener expresiones aritméticas que contengan los operadores +, -, * y /. Estas deben operar sobre cosntantes o atributos de la tupla. Select número_préstamo, nombre_sucursal, importe * 100 From préstamo
La Cláusula Where • Consideremos la consulta: obtener los números de préstamos otorgados en la sucursal Ahumada, mayores a 100.000 pesos. Select número_préstamo From prestamo Where nombre_sucursal = ‘Ahumada’ and monto > 100.000 SQL utiliza las conectivas lógicas and, or, y not para la cláusula where. Los operandos de las conectivas lógicas pueden ser expresiones que contengan los operadores de comparación <, <=, >, >=, =, <>. SQL permite utilizar los operadores de comparación para comparar cadenas y expresiones aritméticas, a si como tipos especiales, como las fechas. • SQL incluye un operador between para simplificar las cláusulas where, el cual especifica que un valor sea menor o igual que un valor y mayor o igual que otro valor. Por ejemplo, obtener números de préstamos cuyo monto este entre 90.000 y 100.000. Select número_préstamo From préstamo between 90000 and 100000
La Cláusula From • La cláusula from define por si misma un producto cartesiano de las tabla que aparecen en la cláusula. Por ejemplo, para todos los clientes que tienen un préstamos en el Banco, obtener el nombre del cliente, el número de préstamo y el monto del préstamo. Préstamo(número_préstamo, nombre_sucursal, monto) Cliente(rut,nombre,número_préstamo) Select nombre, cliente.número_préstamo, monto From préstamo, cliente Where cliente.número_préstamo = préstamo.número_préstamo Podemos agregar un poco de dificultad y además exigir que el préstamo haya sido otorgado en la sucursal Ahumada
La Cláusula From Select nombre, cliente.número_préstamo, monto From préstamo, cliente Where cliente.número_préstamo = préstamo.número_préstamo And nombre_sucursal = ‘Ahumada’