Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en...

24
Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos

Transcript of Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en...

Page 1: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated 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

Page 2: Universidad de Los Lagos Miguel 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

Page 3: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 4: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

Modelo Entidad-relación

Page 5: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 6: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 7: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de 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.

Page 8: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 9: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 10: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 11: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 12: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 13: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 14: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 15: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 16: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

Definición de datos en SQL

Create table cliente

(nombre_cliente char(20),

rut_cliente char(11),

edad numeric(2),

primary key (rut_cliente))

Page 17: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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)

Page 18: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 19: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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.

Page 20: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 21: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 22: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 23: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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

Page 24: Universidad de Los Lagos Miguel Angel Barahona Ingeniero Informático – UTFSM Magíster en Gestión y Tecnología UC PMP Certificated Procesamiento de Datos.

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’