Download objeto. - miguel cotaña
Document related concepts
Transcript
UNIVERSIDAD MAYOR DE SAN ANDRES FACULTAD DE CIENCIAS ECONOMICAS Y FINANCIERAS MAESTRIA EN AUDITORIA Y CONTROL FINANCIERO Auditoría de Sistemas Informáticos: 1.3 Gestión de Bases de datos M. Sc. Miguel Cotaña Mier Lp, Septiembre 2013 2 DEFINICION Una BD es una colección de datos operacionales almacenados sin redundancia perjudiciales y utilizadas para una o mas aplicaciones, de una empresa en particular. 3 ARQUITECTURA DE SBD • NIVEL EXTERNO: Describe solo parte de la BD(mundo real) • NIVEL CONCEPTUAL: Describe que datos son almacenados en la BD y las relaciones que existen entre los datos. (mundo de ideas) • NIVEL INTERNO: Describe el almacenamiento fisico de los datos(mundo de datos) 4 SISTEMA DE BD (SBD) Un SBD es un sistema cuyo proposito general es el de almacenar y recuperar informacion inherente a la organización donde opera. • DATOS: Un SBD puede comprender 1 o varias BD´s. • USUARIOS: personas que accesan a las BD. • HARD: Donde recide las BD. • SOFT: Se lo conoce como DBMS. 5 6 CARACTERISTICAS DE LOS SBD • • • • • • Control de la redundancia; Evitar la inconsistencia; Compartimiento de los datos; Integridad y seguridad de los datos; Estandarizar la información en el sistema; Independencia de datos. 7 TIPOS DE BASE DE DATOS • • • • • • • • • • Base de Datos Jerárquica; Base de Datos Relacional; Base de Datos de Red; Base de Datos Orientada a Objetos; Base de Datos Distribuidas; Base de Datos Objeto Relacional; Base de Datos Multidimensionales; Base de Datos Transaccionales; Base de Datos Documentales; Base de Datos Declarativas (deductivas y funcionales). 8 BASE DE DATOS RELACIONAL Este es el modelo mas utilizado para modelar problemas reales y administrar datos dinamicamente. Su idea fundamental es el uso de “relaciones”. Durante su diseño, una BD relacional pasa por el proceso de normalizacion. 9 DISEÑO CONCEPTUAL MODELO E-R El modelo de datos entidad-relación (E-R) se basa en una percepción del mundo real que consiste en un conjunto de objetos basicos llamados entidades y relaciones entre estos objetos. 10 ….conceptos y grafica • Conjunto de relaciones: Conjunto de relacionamientos del mismo tipo. Ej: Funcionario TRABAJA en el Proyecto NOMBRE F-nac cod CODIGO dir nom FUNCIONARIO TRABAJA en PROYECTO DEPTO 11 TABLA RELACIONAL ATRIBUTOS FUNCIONARIO CODIGO NOMBRE SEXO EDAD A1 Ximena F 21 A2 Marcos M 26 A3 Zulma F 28 REPRESENTACION LOGICA: FUNCIONARIO(codigo,nombre,sexo,edad) T U P L A S 12 OBJETIVOS DEL M.R. • Proveer esquemas de facil utilización; • Mejorar la independencia lógica y física de datos; • Proveer a los usuarios de lenguajes de manipulación de BD de alto nivel, permitiendo el acceso a usuarios sin experiencia; • Optimizar el acceso a BD; • Mejorar la integridad y seguridad de los datos; • Proveer un enfoque metodológico para el diseño de esquemas. 13 CARACTERISTICAS DE BASES DE DATOS RELACIONAL • Una BD, puede ser organizada en relaciones; • Se caracteriza por utilizar una tabla bidimensional, para la organización de los datos (filas y columnas); • Cada fila contiene la información a una entrada en la BD; • Cada columna define un ítem de la BD. 14 LENGUAJES DE BD • Lenguaje de definicion de datos(LDD) Usualmente el LDD incorpora la definicion de constraints y la definicion de vistas. • Lenguaje de manipulacion de datos(LMD) - Alto nivel: orientada a conjuntos - Bajo nivel: orientada a registros • Lenguaje huesped Lenguaje de programacion en el cual comandos del LMD son embutidos. 15 RESTRICCIONES DE ASIGNACION (Mapping) 16 RESTRICCIONES DE ASIGNACIÓN • Una planificación E-R de una empresa pueden definir ciertas restricciones: CARDINALIDAD, que expresan el número de entidades con las que puede asociarse otra entidad mediante un conjunto de entidades. • Para un conjunto binario de relaciones R entre los conjuntos de entidades A y B, la cardinalidad de asignación debe ser una de las siguientes: 17 ……restricciones de asig. • Una a una. Una entidad en A esta asociada a lo sumo con una entidad en B, y una entidad en B esta asociada a lo sumo con una entidad en A. • Una a muchas. Una entidad en A esta asociada con numero cualquiera de entidades en B. Una entidad en B puede asociarse a lo sumo con una entidad en A 18 ……restricciones de asig. • Muchas a una. Una entidad en A esta asociada a lo sumo con una entidad en B, sin embargo, puede estar asociada con un numero cualquiera de entidades en A. • Muchas a muchas. Una entidad en A esta asociada con numero cualquiera de entidades en B, y una entidad en B esta asociada con un numero cualquiera de entidades en A 19 BASE DE DATOS O.O. Para todas las cosas orientadas a objetos, el marco de referencia conceptual es el modelo de objetos. Se menciona los siguientes elementos en este modelo: - Abstracción; - Encapsulamiento; - Modularidad; - Jerarquia; - Tipos; - Persistencia; - Concurrencia. 20 ABSTRACCION Una abstracción denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objeto y proporciona fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador. 21 ENCAPSULAMIENTO Es el proceso de almacenar en un mismo compartimiento los elementos de una abstracción que constituyen su estructura y su comportamiento 22 MODULARIDAD La modularidad es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados. 23 JERARQUIA La jerarquía es una clasificación u ordenación de abstracciones. 24 PARADIGMA O.O. La Orientación a Objetos (OO), es una técnica para el modelado de sistemas como un conjunto de objetos relacionados que interactuan entre sí. La OO es similar a la forma en que las personas observan su entorno. La OO es un enfoque de desarrollo de software que organiza tanto el problema como su solución. 25 OBJETOS OBJETO. Es la representacion abstraida de las cosas Desde la perspectiva de la cognición humana un objeto es: - Una cosa tangible y/o visible. - Algo que puede comprenderse. - Algo hacia lo que se dirige una acción o pensamiento. Todo lo que hay en el mundo serán objetos? 26 OBJETOS Los objetos tienen atributos y operaciones. Los atributos son sus características y sus operaciones (servicios, métodos) son las acciones que el objeto puede realizar La definicion de objetos implica la descripción de atributos, comportamientos, operaciones y mensajes 27 EJEMPLO TOYOTA: CORONA - Placa - Modelo - Color - Nro-motor - Frenar() - Cambiar-caja() Comportamiento del objeto OBJETO ATRIBUTOS OPERACIONES 28 CLASE Clase es una agrupación de objetos con los mismos tipos de características Los objetos son instancias de las clases. Las clases definen atributos y operaciones para sus objetos, no para ellas mismas. ……….CLASES Y OBJETOS CLASE. Es un conjunto de objetos que comparten una estructura comun y un comportamiento común. 29 30 TIPOS DE RELACION ENTRE CLASES asociacion agregacion (tiene) composicion (incluye)(parte de) dependencia navegacion (es un) 31 CLASIFICACIÓN Identificar clases y objetos es fundamental en el DOO. Implica descubrimiento e invención. 32 ABSTRACCIONES CLAVE Es una clase u objeto que forma parte del vocabulario del dominio del problema. 33 SISTEMA DE BD SGBD Procesador de consulta BD Metadatos(DD) + Archivos de datos 34 SGBD • • • • • • • • • • • • • MySql: Licencia Dual; PostgreSQL (http://www.postgresql.org); SQLite (http://www.sqlite.org); DB2 Express-C (http://www.ibm.com/software/data/db2/express/) Apache Derby (http://db.apache.org/derby/); IBM Informix; Microsoft Access; Microsoft SQL Server; Open Access; Oracle; Paradox; Apache; Sybase ASE. 35 PostgreSQL Es un potente motor de bases de datos, que tiene prestaciones y funcionalidades equivalentes a muchos gestores de bases de datos comerciales. Es más completo que MySQL ya que permite métodos almacenados, restricciones de integridad, vistas, etc. 36 Características • Alta concurrencia: Mediante un sistema denominado MVCC (Acceso concurrente multiversión) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. 37 • Claves ajenas: también denominadas Llaves ajenas o Claves Foráneas (foreign keys). • Disparadores(triggers): Se define en una acción especifica basada en algo ocurrente dentro de la BD. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica 38 Funciones: Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientada a objetos o la programación funcional. Algunos de los lenguajes: C, C++, Java PL/JavaWeb, plPHP, pl/Python, Pl/Ruby, pl/sh, pl/Tcl, pl/Scheme. 39 Servidor de BD Veamos como esta construido un servidor de bases de datos relacional : 1. 2. 3. 4. La capa de acceso a los datos; La capa gestora SQL; La capa traductora SQL; La capa de comunicaciones . Como cliente nos conectaremos a la capa 4, le enviaremos los comandos SQL a esta capa, que los pasará a la capa 3. 40 Ésta hace la traducción del comando y, si no hay errores, envía el comando a la capa 2. La capa 2 hace toda la gestión del comando con la colaboración de la capa 1: recoge los datos y errores para enviarlos al cliente, vía la capa 4; y es capaz de mantener un diálogo con el programa cliente para coordinarse. La capa 1 es la encargada de gestionar correctamente los datos y controlar los bloqueos y transacciones. 41 Ejemplo: creamos 3 tablas Fichero: paises.sql create table paises nombre varchar(30)); (cod_pais insert into paises values (1, 'pais 1'); insert into paises values (2, 'pais 2'); insert into paises values (3, 'pais 3'); commit work; integer, 42 Fichero: provincias.sql create table provincias (cod_provincia int, cod_pais int, nom_provincia varchar(30)); insert into provincias values (1, 1, 'Provincia 1, Pais 1'); insert into provincias values (2, 1, 'Provincia 2, Pais 1'); insert into provincias values (1, 2, 'Provincia 1, Pais 2'); insert into provincias values (2, 2, 'Provincia 2, Pais 2'); insert into provincias values (1, 3, 'Provincia 1, Pais 3'); insert into provincias values (2, 3, 'Provincia 2, Pais 3'); commit work; Fichero: municipios.sql create table municipios (cod_pais int, cod_provincia int, cod_municipio nombre_municipio varchar(60)); insert into municipios values (1, 1, 1, 'Municipio 1, Provincia 1, Pais 1'); insert into municipios values (2, 1, 1, 'Municipio 2, Provincia 1, Pais 1'); insert into municipios values (3, 1, 1, 'Municipio 3, Provincia 1, Pais 1'); insert into municipios values (1, 2, 1, 'Municipio 1, Provincia 2, Pais 1'); insert into municipios values (2, 2, 1, 'Municipio 2, Provincia 2, Pais 1'); insert into municipios values (3, 2, 1, 'Municipio 3, Provincia 2, Pais 1'); insert into municipios values (1, 3, 1, 'Municipio 1, Provincia 3, Pais 1'); insert into municipios values (2, 3, 1, 'Municipio 2, Provincia 3, Pais 1'); insert into municipios values (3, 3, 1, 'Municipio 3, Provincia 3, Pais 1'); insert into municipios values (1, 1, 2, 'Municipio 1, Provincia 1, Pais 2'); insert into municipios values (2, 1, 2, 'Municipio 2, Provincia 1, Pais 2'); insert into municipios values (3, 1, 2, 'Municipio 3, Provincia 1, Pais 2'); insert into municipios values (1, 2, 2, 'Municipio 1, Provincia 2, Pais 2'); insert into municipios values (2, 2, 2, 'Municipio 2, Provincia 2, Pais 2'); insert into municipios values (3, 2, 2, 'Municipio 3, Provincia 2, Pais 2'); insert into municipios values (1, 3, 2, 'Municipio 1, Provincia 3, Pais 2'); insert into municipios values (2, 3, 2, 'Municipio 2, Provincia 3, Pais 2'); insert into municipios values (3, 3, 2, 'Municipio 3, Provincia 3, Pais 2'); insert into municipios values (1, 1, 3, 'Municipio 1, Provincia 1, Pais 3'); insert into municipios values (2, 1, 3, 'Municipio 2, Provincia 1, Pais 3'); insert into municipios values (3, 1, 3, 'Municipio 3, Provincia 1, Pais 3'); commit work; 43 int, 44 OBJETIVOS de SGBD • Proveer un ambiente que sea adecuado y eficiente para recuperar y almacenar información de la Base de Datos. • Gestionar grandes volúmenes de información. • Proveer seguridad a la información almacenada en las Bases de Datos. 45 FUNCIONES DEL ABD • Identifica información relevante; • Definiciones de esquema (LDD); • Definición de la estructura de almacenamiento y del método de acceso; • Modificación del esquema y de la organización fisica; • Definición de aspectos de seguridad(usuarios, entornos, infraestructura); • Especificación de las restricciones de integridad; • Reorganización; • Administracion del uso de la BD; • Estadisticas; • Auditoria; • Backup y recuperacion; 46 NORMALIZACION 47 DEPENDENCIA • • • • • Dependencia funcional; Dependencia funcional completa; Dependencia funcional trivial; Dependencia funcional elemental; Dependencia funcional transitiva. 48 CLAVES Clave candidata, clave primaria, clave alternativa, clave ajena. 49 FORMAS NORMALES • Cuando se diseña una BD mediante el MR, al igual que ocurre con otros modelos, obtenemos diferentes esquemas relacionales y no todos ellos son equivalentes, ya que unos van a representar la realidad mejor que otros. • Con la teoria de la normalizacion, se consigue una formalización en el diseño lógico de BDR. 50 1ra. FORMA NORMAL Para que una tabla pueda ser considerada una relación no debe admitir grupos repetitivos, esto es, debe estar en primera forma normal Se dice que una relacion esta en 1FN cuando cada atributo solo toma un valor del dominio simple subyacente. 51 2da. FORMA NORMAL Esta basada en el concepto de dependencia plena y en las interrelaciones existentes entre los atributos principales de una relación. Se dice que una relación esta en 2FN sí: Está en 1FN y cada atributo no principal tiene DFC respecto de cada una de las claves. 52 3ra. FORMA NORMAL Esta basada en el concepto de DFT Un esquema de relación R está en 3FN Sii. Esta en 2FN y no existe ningún atributo no principal que dependa transitivamente de alguna clave R 53 FORMA NORMAL Boyce-Codd Para ciertos problemas fueron insuficientes las tres primeras formas normales, en relaciones que presentaban varias claves candidatas compuestas que se solapaban. Se dice que una relación se encuentra en FNBC sí, y solo sí, todo determinante es una clave candidata. 54 SQL (Structured Query Languaje) • La mayoria de los SGBD relacionales proveen un lenguaje de alto nivel, en el que el usuario solo especifica lo que desea como resultado, dejando las decisiones de como ejecutar la consulta para el sistema. • El SQL es lenguaje standard de BD. • Incorpora el algebra relacional y el calculo relacional