Procesamiento de Datos
description
Transcript of Procesamiento de Datos
Universidad de Los LagosMiguel Angel Barahona
Ingeniero Informático – UTFSM
Magíster en Gestión y Tecnología UC
PMP Certificated
Procesamiento de 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:
Visión de los Datos
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.
Modelo Entidad-relación
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:1. La recuperación de la información almacenada en la BD
2. La inserción de información nueva en la BD
3. El borrado de la información de la BD
4. La modificación de la información almacenada en la 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:
Restricciones de Integridad de las BD
EMPLEADO
Nombre Apellido RUT Fecha_Nac DIRECCION SEXO SUELDO NDEPTO
Juan Pérez 12345678 09-01-1955 Toesca 965 M 120 5
Alicia Zelaya 99988777 19-07-1958 Blanco 2120 F 105 4
DEPARTAMENTO
Nombre DNUMERO RUT_Gte
Of. Central 1 88866555
Administración 4 98765432
Investigación 5 33344555
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:
Id_Cliente Nombre Direccion Ciudad
12456789 Juan Arauco 123 Santiago
14440720 Carlos Alameda 234 Santiago
15890521 Olivia Ahumada 230 Santiago
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
Usuario
Aplicación
Sistema de BD
Usuario
Cliente de Aplicaciones
Sistema de BD
Servidor de Aplicaciones
RED RED
Cliente
Servidor
Arquitectura de dos capas Arquitectura de tres capas
Lógica de Negocio
Lógica de Negocio
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.
Num_Cuenta Nombre_Sucursal
Saldo
101 Santiago Centro 500
102 Ñuñoa 400
103 Las Condes 300
104 San Miguel 900
105 Providencia 700
106 Quilicura 600
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 INSERTInsert 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 DROPDrop table cliente
Si queremos añadir campos o atributos a una tabla utilizaremos el comando ALTER TABLEAlter 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:a) Crear esquemasb) Insertar 5 clientes creados por Ud., uno de ellos con rut 2-7.c) Eliminar cliente 2-7d) 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,.., AnFrom r1,r2,…,rmWhere 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_sucursalFrom 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_sucursalFrom 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éstamoFrom prestamoWhere 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, montoFrom préstamo, clienteWhere 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’