01_Introducción-DBMS (1).pdf
Document Details
Uploaded by HilariousLime
Tags
Full Transcript
. BASES DE DATOS Introducción a los DBMS Lic. Carlos Buckle BIBLIOGRAFIA BASICA *) Fundamentos de Bases de Datos Silberschatz, Korth ,Sudarshan © McGraw Hill *) Introducción a los Sistemas...
. BASES DE DATOS Introducción a los DBMS Lic. Carlos Buckle BIBLIOGRAFIA BASICA *) Fundamentos de Bases de Datos Silberschatz, Korth ,Sudarshan © McGraw Hill *) Introducción a los Sistemas de Bases de Datos C.J.Date © Addison-Wesley *) Fundamentals of Database Systems Elmasri, Navathe © Pearson Education Bases de Datos - Introducción DBMS 2 Repasando Definiciones Base de Datos: Colección de datos integrados referidos a un determinado contexto. Por ej. Una base de datos de una biblioteca. Gestor de Base de Datos (DBMS): Un paquete de software que facilita la creación, mantenimiento y explotación de una Base de Datos. Por ej. MySql, Postgresql, DB4O, MongoDB, GraphDB, etc. Sistema de Bases de Datos: Un sistema informático que guarda datos permanentes en una Base de Datos. Compuesto por la Base de Datos, el DBMS, las aplicaciones de usuario y los usuarios. Por ej. El sistema de la Biblioteca 1. Bases de Datos - Introducción DBMS 3 Manejando BD sin DBMS Escribe un programa para manejo de Empleados Archivos de datos: docentes.dat y deptos.dat Código fuente: Que permita crear, recuperar, modificar y eliminar docentes.dat deptos.dat Legajo Apellidos Nombres Salario Depto Depto Nombre 101 Bukel Carlos 3.200 Inf Mat Matemátic 107 Maztanti Renato 3.200 Inf a 140 Fernandis Elsa 5.000 Mat Inf Informática 230 Dinanig Jorge 4.100 Inf Fis Física Bases de Datos - Introducción DBMS 4 Manejando BD sin DBMS (cont.) Escribir un programa con estos Requerimientos: – Asegurar que un registro no se graba dos veces; – Asegurar que cada Depto asignado a un docente es válido. – El salario toma valores entre 0 y 20.000 – Permitir el acceso simultáneo de varios usuarios autorizados. – Hacer un programa que permita incrementar los salarios en un porcentaje Responder: Qué tareas debe realizar para agregar el campo “fecha_nacimiento” luego de un tiempo de operación en el cual ya se han cargado registros de docentes? Desde el sistema informático de la Universidad quieren usar el su archivo docentes.dat. Pueden? Qué necesitan saber los desarrolladores de ese sistema? Qué sucede si dos usuarios simultáneamente intentan modificar un registro? Podría controlar que esto no suceda?. Cómo? Qué sucede si mientras ejecuta el programa de actualizar los salarios se corta la energía?. Algunos registros se actualizaron y otros no. Podría detectarlo? Cómo impediría el acceso a usuarios no autorizados ? 2. Bases de Datos - Introducción DBMS 5 Ventajas de un DBMS Los datos pueden ser compartidos por varias apps y usrs. La definición de los datos está dentro de la BD La redundancia puede ser reducida y controlada Se eliminan inconsistencias (integridad) Soporta transacciones. (conjunto atómico de acciones) Se puede garantizar la seguridad Todos las apps comparten la misma represent. de datos. Eficiente. Acceso a datos ágil. Performance. Permite hacer cumplir las normas (reglas) Mejora tiempo de producción. (Herramientas) Tolerancia a fallas y recuperación Independencia de Datos Bases de Datos - Introducción 6 Ciclo de diseño de una Base de Datos Especificación de Lenguaje Natural Análisis de Requerimientos Requerimientos Modelado UML Clases / Diseño conceptual Conceptual ERD Relacional, O-O, Modelo Lógico XML, Grafos, Diseño lógico Documentales, etc Independ. DBMS DBMS-específico Creación Base de Datos Esquema BD Interno Operación (uso), Mantenimiento, Instancia BD Tunning 3. Bases de Datos - Introducción DBMS 7 Modelos Lógicos Modelos de Bases de Datos o Modelo de Archivos y Registros (básico) DBMS de referencia: Flat-file, COBOL, DBASE, Foxpro o Modelo Jerárquico (árboles) o de Red (net) (no se utilizan más) DBMS de referencia: IDS, IMS, DBTG o Modelo Relacional (Tablas/Columnas) DBMS de referencia: DB2, Oracle, Ingres, Postgres, MySQL, SQLServer o Modelo Orientado a Objetos (Clases/Objetos) + ORM DBMS de referencia: DB40, Versant, Hibernate, JPA o Modelo de Grafos (Nodos/Arcos) DBMS de Referencia: Neo4J, GraphDB o Modelo de Documentos (XML, JSON, YAML, etc) DBMS de Referencia: Lotus Notes, MongoDB, CouchDB o Modelos Clave-Valor y Familias de Columnas (BD Verticales) DBMS de Referencia: Google Big-Table, Cassandra, Dynamo Bases de Datos - Introducción DBMS 8 Ejemplo del proceso de diseño y construcción Etapa 1: Diseño Conceptual (UML - Diagrama de Clases - Conceptual) 4. Bases de Datos - Introducción DBMS 9 Ejemplo del proceso de diseño y construcción Etapa 2: Diseño Lógico en Modelo (En este ejemplo será Modelo Relacional) (UML - Diagrama de Clases - Lógico) Bases de Datos - Introducción DBMS 10 Ejemplo del proceso de diseño y construcción Etapa 3: Selección de un DBMS (En este ejemplo será un DBMS Relacional) Red Local Internet Lenguaje de Bases de Datos (SQL) Servidor de Bases de Datos Gestor de Bases de Datos Base de Datos 5. Bases de Datos - Introducción DBMS 11 Ejemplo del proceso de diseño y construcción Etapa 4: Creación de la Base de Datos (Esquema) (SQL - DDL) CREATE TABLE departamentos ( id SERIAL NOT NULL, depto VARCHAR(10) NOT NULL, nombre VARCHAR(90) NOT NULL, PRIMARY KEY(id), UNIQUE (depto) ); CREATE TABLE docentes ( id SERIAL NOT NULL, legajo INTEGER NOT NULL, apellidos VARCHAR(60) NOT NULL, nombres VARCHAR(90) NOT NULL, salario DECIMAL(10,2), id_depto INTEGER, PRIMARY KEY(id), UNIQUE (legajo), FOREIGN KEY(id_depto) REFERENCES departamentos(id) ); Bases de Datos - Introducción DBMS 12 Ejemplo del proceso de diseño y construcción Utilizando un modelo lógico y DBMS Relacional Etapa 5: Uso de la Base de Datos (Instancia) (SQL - DML) INSERT INTO departamentos VALUES (100001,'MAT', 'Matematica'); INSERT INTO departamentos VALUES (100002,'INF', 'Informatica'); INSERT INTO departamentos VALUES (100003,'FIS', 'Fisica'); Apps INSERT INSERT INTO INTO docentes docentes VALUES VALUES (100001,101,'Bukel','Carlos',3200,100002); (100002,107,'Maztani','Renato',3200,100002); INSERT INTO docentes VALUES (100003,140,'Fernandis','Elsa',5000,100001); INSERT INTO docentes VALUES (100004,230,'Dinanig','Jorge',3200,100002); 6. Bases de Datos - Introducción DBMS 13 Ejemplo del proceso de diseño y construcción Utilizando un modelo lógico y DBMS Relacional Etapa 5: Uso de la Base de Datos (Instancia) (SQL - Select) Apps SELECT apellidos, nombres FROM ejemplos.docentes WHERE id_depto = 100002 Bases de Datos - Introducción DBMS 14 Niveles de abstracción de los datos Los sistemas manejan diferentes niveles de abstracción, entre el datos que maneja el usuario y el dato que efectivamente se almacena en un disco Alto nivel Vista (aplicación): Ana María, 28 años …. …. Conceptual y lógico: Persona -> Nombre : Ana María …. -> Fec-Nacimiento: 1/8/1998 …. …. Físico (interno): Archivo f1 – Bloque f1b1 – 2 Kb Bajo nivel 7. Bases de Datos - Introducción DBMS 15 Arquitectura de un DBMS Las Bases de Datos se pueden ver desde diferentes puntos: –Visión lógica. La que vé el usuario, un programa de aplicación o un Lenguaje de Bases de Datos. –Visión física. Cómo se organizan la información, relación con el S.O. Estructuras adicionales de acceso. Se puede dividir la visión lógica en la visión de diseño (conceptual) y la visión que los usuarios quieren ver (vistas). Bases de Datos - Introducción DBMS 16 Arquitectura en tres niveles View 1 View 2 … View N Esquema Nivel conceptual (diseño) Nivel interno (físico) Instancia (org. de archivos, indexación, etc.) 8. Bases de Datos - Introducción DBMS 17 Instancias y esquemas Esquema – la estructura lógica de la base de datos Instancia – El contenido actual de la base de datos Ejemplo: La base de datos registra clientes y compras. Ambos están relacionados. Un cliente puede hacer varias compras. Las compras son de un único cliente. Los clientes están numerados y se conoce su apellido y nombre Esquema de Docentes Esquema de Departamentos Instancia de Docentes Instancia de Departamentos Bases de Datos - Introducción DBMS 18 Independencia de datos en un DBMS Permite modificar representación interna y/o métodos de acceso sin necesidad de modificar aplicaciones ni estructura lógica de los datos. (independencia física) Permite modificar la estructura lógica de los datos (modelo lógico) sin necesidad de modificar las aplicaciones. (independencia lógica) 9. Bases de Datos - Introducción DBMS 19 Lenguajes de Base de Datos Lenguaje provisto por el DBMS que permite crear, manipular y consultar la base de datos sin conocer como se almacenan (ni donde) sus datos. Son Lenguajes “Declarativos” (No-Procedurales) No expresan CÓMO deben manejarse los datos (no indica el procedimiento a seguir). Declaran QUÉ resultados se desean obtener Son Lenguajes de Bases de Datos: SQL, Sparql, QBE (Query by Example) Ejemplo en SQL. SELECT apellidos, nombres FROM docentes WHERE depto = ‘INF‘ Proporcionan un sublenguaje de Definición de Datos (DDL) para especificar el Esquema de la base de datos Proporcionan un sublenguaje de Manipulación de Datos (DML) para expresar las consultas y las modificaciones sobre la Instancia Bases de Datos - Introducción DBMS 20 Sublenguaje DDL Data Definition Language DDL maneja los Esquemas y los mantiene en el Diccionario (Catálogo) El Diccionario (Catálogo) contiene meta-datos Esquemas, Reglas, Seguridad, Descripciones, etc. SQL-DDL: Create, Alter, Drop Ejemplo: create table docentes ( legajo integer, apellidos varchar(60), nombres varchar((90), depto varchar(20), salario decimal(8,2) ); 10. Bases de Datos - Introducción DBMS 21 Sublenguaje DML Data Manipulation Language Lenguaje para manipular los datos (Instancias), que están estructurados según un modelo (Esquema) SQL-DML: Select, Insert, Update, Delete Ejemplo: Insert into docentes (legajo, apellidos, nombres, salario, depto) values (24, ‘Gomez’, ‘Andrea’, 4500,’MAT’); Bases de Datos - Introducción DBMS 22 Usuarios Programador de apps: Escribe programas de aplicación que acceden a la BD. Utiliza sentencias DDL para crear el Esquema. Incorpora sentencias DML en sus aplicaciones End users: –Finales: acceden vía los programas de aplicación. –Expertos(sofisticados): Utilizan SQL-SELECT para extraer sus propias consultas desde la BD. Administrador de Bases de Datos (DBA) Crea la base de datos (Usando DDL) Define políticas de seguridad (Usando DDL y DCL). Asegura la performance del sistema (Usando DDL). Provee asistencia técnica, instalaciones, backups, etc. 11. Bases de Datos - Introducción DBMS 23 Interaccion de los usuarios ®Silberschatz, Korth & Sudarshan Bases de Datos - Introducción DBMS 24 Usuarios, dml/ddl, Instancias/esquemas Usuarios DML / DDL Esquemas /Instancias ®Silberschatz, Korth & Sudarshan 12