bd

Document Sample
bd Powered By Docstoc
					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.
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 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:
                                            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:
                                              Clientes
                        Id_Cliente     Nombre               Direccion    Ciudad
                         12456789    Juan                Arauco 123     Santiago
                         14440720    Carlos              Alameda 234    Santiago
                         15890521    Olivia              Ahumada 230    Santiago

  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                               Cliente
   Negocio
                    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:


                                 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


  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:
 a) Crear esquemas
 b) Insertar 5 clientes creados por Ud., uno de ellos con rut 2-7.
 c) Eliminar cliente 2-7
 d) 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‟

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:12
posted:9/24/2011
language:Spanish
pages:24