La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bases de Datos Relacionales

Presentaciones similares


Presentación del tema: "Bases de Datos Relacionales"— Transcripción de la presentación:

1 Bases de Datos Relacionales
2016 Bases de Datos Relacionales

2 Bases de Datos Objetivos Proporcionar al participante los conceptos básicos de bases de datos y dar a conocer las principales funcionalidades de los sistemas administradores de bases de datos. Profundizar en el estudio del modelo relacional, su fundamento teórico y lenguajes de consulta. Efectuar prácticas con el lenguaje

3 Bases de Datos Contenido 1. Introducción 2. El ambiente tecnológico de las bases de datos 3. El modelo relacional 4. Instrumentación de la base de datos 5. Normalización 6. Integridad y Seguridad 7. Lenguajes para bases de datos 8. Manejo de Transacciones

4 UNIDAD I Introducción a las BD
Bases de Datos UNIDAD I Introducción a las BD Clase expositiva 1 y 2

5 1. Introducción Sistemas de Información y Bases de Datos
¿Qué es una Base de Datos? Sistemas de Información y Bases de Datos Sistemas de Administración de Bases de Datos El campo de las bases de datos Comparación con el proceso por archivo Paradigma de base de datos Niveles de automatización Aplicaciones

6 Modelos de Gestión de Datos
Bases de Datos Modelos de Gestión de Datos 1. Aplicaciones con manejo de datos independiente ( Sistema de Archivos ) Cada aplicación recurre a archivos separados. 2. Gestión centralizada ( Sistema de Bases de Datos ) Datos centralizados y compartidos por todas las aplicaciones

7 Aplicaciones con Manejo de Datos Independiente
Bases de Datos Aplicaciones con Manejo de Datos Independiente Sistema de Archivos Archivo de cuentas corrientes Aplicación 1 Num. Cliente nombre cliente DatosCuentaCorriente 2056 juan pérez Archivo de Ahorros redundancia Num. Cliente nombre cliente Datos de Ahorros 2056 juan pérez Aplicación 2 Aplicación 3 inconsistencia Archivo de prestamos Num. Cliente nombre cliente Datos de Prestamos 2056 Juan A. Pérez  Cada aplicación recurre a archivos separados. ¿Cómo funcionaría un Banco bajo este criterio? Archivos separados según tipo de operaciones bancarias y áreas funcionales: cuentas corrientes, ahorros y prestamos,.. Ejemplo: Si Juan Pérez es un cliente del Banco y tiene cuenta corriente, cuenta de ahorros y un préstamo que actualmente esta pagando, los datos concernientes a Juan, estarían repetidos en los tres archivos, cada uno de los cuales se actualiza con programas diferentes.

8 Aplicaciones con Manejo de Datos Independiente
Bases de Datos Aplicaciones con Manejo de Datos Independiente Alto nivel de redundancia Un mismo dato puede estar repetido en diferentes archivos. Riesgo de inconsistencias Las diversas copias de los mismos datos pueden no coincidir (por ejemplo el cambio de dirección de un cliente) Uso excesivo de recursos humanos Una alta proporción de recurso humano, se dedica a actividades de mantenimiento de software. Las aplicaciones dependen de los archivos Si se hacen cambios en los formatos de archivos, también deben modificarse los programas( falta de independencia ). Los archivos pueden ser incompatibles Un archivo en Cobol no es igual que un archivo hecho en C++. Los archivos no pueden combinarse o compararse. Datos separados y aislados En ocasiones es necesario obtener información de dos o más archivos. Costos elevados Cambios a las aplicaciones muy costosos, un cambio trivial provoca una reacción en cadena de otros cambios. Almacenamiento redundante incrementa los costos. Tendencia a crear más y más archivos Proliferación constante de nuevos archivos y por tanto dificultad en su actualización.

9 Enfoque de Bases de Datos
Gestión Centralizada de Datos Aplicación 1 Archivo de Clientes Num. Cliente nombre cliente Datos de Datos de Cuentas Cuentas de Datos de 2056 juan pérez Corrientes Ahorros Prestamos Aplicación 3 Archivo de Datos de Cuentas Archivo de cuentas Datos de Aplicación 3 corrientes Préstamos préstamos Corrientes Enfoque de Bases de Datos Archivo de Datos de Cuentas de cuentas de Ahorros ahorros Usando el ejemplo anterior: - En este caso se establece un solo archivo de clientes para las tres cuentas. - Se crea un archivo para cada actividad bancaria: Cuenta corriente, Cuenta de ahorros y Prestamos. - Ya no se registran los datos del cliente, solo se hace referencia a ellos. - Los datos son compartidos por todas las aplicaciones. Asi por ejemplo es posible transferir dinero entre una cuenta y las otras, o preparar un solo estado mensual para las tres cuentas de un cliente o de todos los clientes.

10 … Datos Independientes
Bases de Datos … Datos Independientes Dpto. Contabilidad Dpto. Personal Dpto. Ventas Cuentas Clientes Ventas Empleados Inventario … Centralizado Personal Empleados Clientes Ventas Inventario Cuentas BASE DE DATOS SGBD Ventas Contabilidad

11 Sobre los datos de la empresa
Bases de Datos Sobre los datos de la empresa En la medida de lo posible los datos en la base deben cumplir: Ser Independientes entre si Estar Distribuidos Ser No redundantes Ser Reales Estar Compartidos

12 Características de los SGBD
Bases de Datos Características de los SGBD Naturaleza autodescriptiva de los SGBD Diccionario de Datos o Catalogo (Metadatos ). Aquí va la información de la estructura de cada archivo, el tipo y formato de los datos elementales y las diversas restricciones que se aplican a nivel de columna o de archivo. Independencia respecto a programas y datos Abstracción: Las estructuras de los archivos se almacenan en el diccionario de datos del SGBD y no en los programas. Manejo de múltiples vistas de los datos Cada usuario puede tener una vista ó perspectiva diferente. Control de Concunrrencia El SGBD incluye software de control de concurrencia (gestor de transacciones) para asegurar que cuando varios usuarios intenten actualizar los mismos datos, lo hagan de manera sincronizada. Control de Redundancia Queda minimizada o controlada la repetición del mismo dato en diferentes archivos. De esta forma ya no se desperdicia espacio de almacenamiento ni se producen inconsistencias. Restricción de accesos no autorizados Niveles de acceso: Manejo de roles y privilegios por cuentas y/o grupo de cuentas. Restricciones de Integridad Ejemplos: definir un tipo de dato (entero o String), las edades de colegiales (13 a 17), que un valor sea único (código de trabajador ), etc Respaldo y Recuperación Se recuperan ante fallas de hardware o de software. La idea es que después de una caída, se restaure la BD al estado en el que estaba.

13 Comparación entre Archivos y Base de Datos
Bases de Datos Comparación entre Archivos y Base de Datos Dependencia de ligas externas a los datos Datos sin compartir en toda la empresa Redundancia de los datos Archivos no relacionados entre sí Acceso limitado y con poca flexibilidad, eficiencia y seguridad Independencia a ligas externas a los datos Datos compartidos y compatibles en la empresa Redundancia mínima y controlada Datos relacionados de acuerdo a un modelo Flexibilidad, Integridad, Eficiencia y seguridad

14 Definición Base de Datos o BD
Bases de Datos Definición Base de Datos o BD Colección de todos los datos operativos de una Empresa de acuerdo a un modelo específico que son accesibles desde cualquier lugar físico y nivel de la empresa (Estratégico, Táctico, Operativo) Una BD debe cumplir con las características de: Unicidad Consistencia Seguridad Privacídad Disponibilidad Integridad

15 ¿ Qué es una Base de Datos (BD) ?
Bases de Datos ¿ Qué es una Base de Datos (BD) ? Un conjunto de información organizada para cumplir las necesidades de información de los usuarios de una empresa. Almacena eventos individuales de las transacciones que se generan a partir de un Proceso de Negocios determinado Colección compartida de datos sin redundancias innecesarias, almacenados en un soporte informático no volátil, independiente de los programas que los usen, interrelacionados y estructurados de acuerdo a un modelo de datos con el objeto de atender todas las necesidades de los diferentes usuarios.

16 Sistema Gestor de Base de Datos (SGBD)
Bases de Datos Sistema Gestor de Base de Datos (SGBD) Un software ó conjunto de programas que permiten crear y mantener una base de datos, asegurando su integridad, confidencialidad y seguridad. Los SGBD permiten: - Definir una BD: especificar tipos, estructuras y restricciones de datos - Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD - Manipular la base de datos: realizar consultas, actualizarla, generar informes. - Control de la Redundancia - Control de accesos Manejo de restricciones de integridad Características que hacen la Diferencia entre SGBD - Rendimiento - Funcionalidad/Inteligencia - Distribución/Integración

17 Bases de Datos El campo de las BD Eficiencia Acceso y modificación de grandes volumenes de datos Adaptabilidad Supervivencia de datos bajo errores, reduciendo inconsistencias Control del acceso Simulataneidad de uso múltiple dentro de una congruencia con control de concurrencia y seguridad Persistencia Existencia y mantenimiento de datos por largos períodos de tiempo, independientemente del modo de acceso

18 Guía de Lectura 1 BD D Kroenke.pdf.
Bases de Datos Guía de Lectura 1 BD D Kroenke.pdf. Capitulo 1 Introducción al Procesamiento de Bases de Datos BBD silberschatz.pdf Capitulo 1 Introducción 1.1. Aplicaciones de los Sistemas de Bases de Datos, 1.2. Sistemas de Bases de Datos Frente a Sistemas de Archivos Date C J - Introdución a los Sistemas de BD.pdf CAPÍTULO 1 Panorama general de la administración de bases de datos

19 UNIDAD II Ambiente Tecnológico
Bases de Datos UNIDAD II Ambiente Tecnológico Clase expositiva 3 y 4

20 2. El ambiente tecnológico de las BD
Bases de Datos 2. El ambiente tecnológico de las BD Contexto informático Actividades del modelador de bases de datos Breve cronología de las bases de datos Evolución de la noción de BDs Modelos de datos Esquema e instancia Modelado Modelo de empresa Modelo de datos Modelo de implementación

21 Esquema General de Uso de una Base de Datos
Bases de Datos Esquema General de Uso de una Base de Datos Internet Resultados BASE DATOS ASP PHP JAVA .NET Resultados Modelo Datos Applicación SQL Cliente VisualBasic PowerBuilder VisualFox Delphi SQL Server ORACLE INFORMIX DB2

22 Diversos Modelos de una BD
Bases de Datos En realidad han existido diversos modelos para modelar la realidad, aquí presentamos algunos de ellos Modelo Jerárquico  Primer modelo de BD, IMS es la mas popular Modelo de Redes Definido por C. Bachman, IDMS fue el producto comercial Modelo Relacional Funcional Diseño de Codd popularizado por Date (RDB, Oracle, Sybase, Informix ) Modelo Entidad - Relación  Concepción de Chen, muy usado aplicable a diversos modelos ( j,r,rel) Modelo Semántico Inicialmente de R. Quillian usado solo en investigación Modelo Binario Instrumentado por Stonebraker basado en el modelo de Codd (Ingres) Modelo Orientado a Objetos  Popular al representar la tendencia actual (Ilustra, O2 ) Modelo Mutlirelacional Extensión al relacional con inversión total

23 Bases de Datos Entorno de operación

24 EXTRANET / INTRANET: El entorno actual
Bases de Datos EXTRANET / INTRANET: El entorno actual Interacción actual entre el WWW y la BD

25 Niveles de Instrumentación
Bases de Datos Niveles de Instrumentación Sistematización-> Diseño funcional Automatización -> Archivos tradicionales y Desarrollo de Interfases Basee de Datos Relacional -> Integración.

26 Niveles de Instrumentación (2)
Bases de Datos Niveles de Instrumentación (2)

27 Arquitectura de una BD (Niveles de abstracción) NIVEL EXTERNO
Bases de Datos Arquitectura de una BD (Niveles de abstracción) NIVEL EXTERNO Es conocido como el nivel de vistas de usuario. Cada vista de usuario se conoce como subesquema o esquema externo, donde cada uno de ellos describe alguna parte de la base de datos. Oculta al usuario toda la base de datos restante. NIVEL CONCEPTUAL A este nivel se tiene el esquema de la base de datos, que describe la estructura de toda la base de datos. El esquema conceptual oculta los detalles de las estructuras físicas de almacenamiento y se concentra en describir entidades, tipos de datos, relaciones, operaciones y restricciones NIVEL INTERNO o FISICO tiene un esquema interno o físico. Describe como se almacenan realmente los datos y los caminos de acceso a la base de datos.

28 Bases de Datos Arquitectura de una BD Correspondencia conceptual/ interna Correspondencia externa/conceptual La BD presenta una arquitectura de tres niveles: Vista Externa 1 Vista Externa 2 Vista Externa n . . . Usuarios finales ESQUEMA CONCEPTUAL ESQUEMA INTERNO NIVEL EXTERNO NIVEL CONCEPTUAL NIVEL INTERNO BD ALMACENADA detalle Correspondencia : proceso de transformar pedidos y respuestas de un nivel a otro

29 Tipos de Usuarios de Base de Datos
Bases de Datos Tipos de Usuarios de Base de Datos Programadores Escriben aplicaciones, donde incrustan comandos DML para interactuar con el sistema Usuarios normales Interactúan con el sistema mediante el uso de aplicaciones que han sido escritos por informáticos. Usuarios sofisticados Interactúan con el sistema creando consultas con un lenguaje de consulta, las cuales entran al procesador de consultas que transforma las instrucciones DML, para ser entendidas por el gestor de almacenamiento. Administrador de la Base de Datos Crea BD, define métodos de acceso, concede autorizaciones, etc

30 Vista de los Componentes de un SGBD
Bases de Datos Vista de los Componentes de un SGBD Usuarios normales Programadores de aplicaciones Usuarios sofisticados Administrador de Base de Datos Usuarios Interfaces de aplicaciones Programas de aplicacion Esquema de base de datos Consulta Precompilador del DML compilador del DML Interprete del DDL Procesador de Consultas Sistema de gestión de base de datos Código objeto de las aplicaciones Motor de evaluación de consultas Gestor de transacciones Gestor de memoria intermedia Gestor de almacenamiento Gestor de archivos Archivos de datos estadística indices Diccionario de datos

31 ¿Cómo Diseño la Base de Datos ?
Bases de Datos ¿Cómo Diseño la Base de Datos ? Interacción con el sistema Usuarios Sistema BASE DATOS Requerimientos

32 Etapas para el Diseño de una Base de Datos
Bases de Datos Etapas para el Diseño de una Base de Datos Requerimientos de Información (I) DISEÑO CONCEPTUAL (II) DISEÑO LOGICO (III) DISEÑO FISICO DE LA BASE DE DATOS BASE DATOS

33 Etapas para el Diseño de una Base de Datos
Bases de Datos Etapas para el Diseño de una Base de Datos Requerimientos de Información Usuarios y Clientes DISEÑO CONCEPTUAL Cliente Producto Documentos DISEÑO LOGICO RED RELACIONAL OO DISEÑO FISICO DE LA BASE DE DATOS ORACLE SQL Server ACCESS DB2 MYSQL INFORMIX

34 Guía de Lectura 2 www.licrgarcia.webode.com.ar
Bases de Datos Guía de Lectura 2 Tema 1. Conceptos Básicos de los sistemas de Bases de Datos. . (12Introduccion a las bases de datos.pdf) CAPÍTULO 2 Arquitectura de los sistemas de bases de datos Date C J - Introdución a los Sistemas de BD.pdf

35 UNIDAD III Parte 1 Introducción al Modelo Relacional
Bases de Datos UNIDAD III Parte 1 Introducción al Modelo Relacional Clase expositiva 5,6, 7 y 8

36 3. El Modelo Relacional Definición del modelo relacional
Bases de Datos 3. El Modelo Relacional Definición del modelo relacional Esquema relacional Propiedades estructurales Definición de relación Identificación de tuplas Almacenamiento de relaciones

37 Modelo de Datos SGBD de Primera Generación SGBD de Segunda Generación
Bases de Datos Modelo de Datos Conjunto de conceptos para describir la estructura de una base de datos, es decir, a las entidades involucradas, sus relaciones, semántica asociada a los datos y restricciones de consistencia. Los modelos de datos se clasifican : 1. Modelo Jerárquico SGBD de Primera Generación 2. Modelo de Redes Nivel Implementación SGBD de Segunda Generación 3. Modelo Entidad Relación 4. Modelo Relacional Alto Nivel 5. Modelo de Objetos SGBD de Tercera Generación BD. DISTRIBUIDAS, ACTIVAS, ESPACIALES ORIENTADAS A OBJETOS, ... 6. Modelo Objeto-Relacional

38 Bases de Datos Modelo de Datos Un modelo es un conjunto de conceptos para describir los datos y la relación semántica entre ellos, dentro de las restricciones que apliquen en la empresa La triada MD { G, O, R } G Reglas de Generación de objetos 0 Operaciones, elementos de manipulación R Restricciones inherentes y explícitas MD Notación formal matemática para expresar datos y relaciones Esquema del Modelo de Datos: Es un plano de la Base de Datos Vista del Modelo de Datos: Es un sub esquema del M. de D.

39 Bases de Datos Modelado

40 Bases de Datos Definición del Modelo El modelo relacional es una estructura basada en colecciones de tablas en 2 dimensiones con propiedades especiales, que permiten representar distintos tipos de asociaciones Las tablas se denominan entidades y están formadas por un conjunto de tuplas o instancias de cada relación de datos atómicos, llamados dominios. Cada tupla representa un hecho elemental o aseveración de la realidad a modelar: < Id objeto, propiedad 1, propiedad 2, … , propiedad n > < Arbol, Altura, Color, … , Edad > < Fresno, 10.30, café oscuro, … , 10 > El orden de cada tupla en la entidad y de cada dominio es irrelevante en la organización. Aunque los valores de los dominios pueden repetirse, las asociaciones son únicas, por lo que no pueden existir dos instancias iguales.

41 Operaciones con el Modelo
Bases de Datos Operaciones con el Modelo El modelo relacional permite consultar las tablas: instancia por instancia insertar nuevas entidades: definición de archivos insertar nuevas instancias: altas eliminar entidades: bajas de archivos eliminar instancias: bajas actualizar entidades: cambios interrelacionar entidades: a través de un dominio El modelo asume la existencia de un lenguaje de interacción poderoso El modelo fue desarrollado por F. Codd en los 70’s y parte de la definición matemática de que un entidad es un subconjunto del producto cartesiano entre los dominios de la realidad a modelar: Sean los dominiosD1:{d1a,d1b..d1n }, D2 :d2a, d2b … d2n}, D3:{d3a, d3b … d3n} Entonces el producto cartesiano D1 x D2 x D3 esta dado por las tuplas < d1a, d2a,d3a > ……. < d1a, d2a,d3b > hasta ….. < d1n, d2n,d3n > El subconjunto de este producto es la realidad existente en un momento dado en la empresa

42 Ejemplos del Modelo Entidades: archivos existentes (esquema)
Bases de Datos Ejemplos del Modelo Entidades: archivos existentes (esquema) Vistas: relación temporal entre archivos (subesquema) Note que no todos las tuplas están relacionadas, igualmente las entidades son solo un subconjunto de todas las combinaciones posibles de los productos cartesianos

43 Identificación de tuplas (Registros)
Bases de Datos Identificación de tuplas (Registros) Tradicionalmente se conoce como llave de acceso a aquel campo o campos de un registro que nos permite llegar directo a un dato, por ejemplo el nombre de la persona nos permite obtener su edad, sexo, altura, etc. En el modelo relacional se mantiene esta situación siendo este dominio o conjunto de dominio la llave de acceso. Para encontrar los índices principales, en el modelo buscaremos aquellos dominios que son independientes, esto es aquellos de los que los demás dominios de la relación dependen para generar una relación funcional. A esto le llamaremos dependencias funcionales o DF. Es común que el dominio o los dominios independientes correspondan a la llave de acceso de un archivo (igualmente al índice principal en un archivo indexado).

44 Bases de Datos Llaves y Atributos Tradicionalmente existen las siguientes tipos de llaves de acceso a un archivo: Llave Primaria: Dominio(s) independientes en la entidad Llave Compuesta: Si la llave primaria es formada por varios dominios Super Llave: Conjunto de llaves que satisfacen la identificación única. En el modelo relacional es lo que se desea, para lo que se requiere el proceso de normalización de entidades en el modelado de la realidad Atributo Primario: es aquel dominio independiente y que forma parte de la llave de una entidad específica. Atributo segundario: es aquel dominio que dependa de una llave en una entidad, sin participar en la llave. Llave Foránea: Aquel dominio que existiendo como dependiente en una entidad es a su vez una llave (Atributo primo) en otra entidad de la BD.

45 5. Normalización Diseño de esquemas relacionales
Bases de Datos 5. Normalización Diseño de esquemas relacionales Relaciones libres de anomalías Ejemplos de descomposición Descomposición sin pérdida Dependencia funcional Ejemplos básicos Formas normales (anomalías) 1ª. Forma normal(1NF) 2ª. Forma normal(2NF) 3ª. Forma normal(3NF) Forma normal BC(BCNF) 4ª. Forma normal(4NF) 5ª. Forma normal(5NF) Guía para normalizar 3NF

46 Es representada por los siguientes objetos:
Bases de Datos Es representada por los siguientes objetos: Relación: es un conjunto de datos referentes a un conjunto de entidades y organizados en forma tabular filas y columnas (tuplas y atributos). En la que cada intersección de filas y columnas tiene un valor. Atributos: son las propiedades de las entidades. Dominio: es el conjunto de donde los atributos toman sus valores. Tupla (registros): es un conjunto de información que forman una fila de una tabla. Grado: es el numero de atributos o columnas que posee. Cardinalidad: se denomina así al numero de tuplas de una relación. Clave: se define a aquel atributo que nos determinan de forma única y mínima a una tupla de esa relación.

47 Bases de Datos Tipos de Relaciones Existen cuatro tipos de relaciones que pueden establecerse entre entidades. 1. Uno a uno (1 : 1) 2. Uno a muchos (1 : N) 3. Muchos a uno (M:1) 4. Muchos a muchos (M : M) A estas relaciones se las conoce como cardinalidad. C C C = Cardinalidad

48 Propiedades de las Relaciones
Bases de Datos Propiedades de las Relaciones Cada relación tiene un nombre único. Los valores de los atributos son atómicos. No hay dos atributos que se llamen de igual forma. El orden de los atributos no importa. Cada tupla es distinta. El orden de las tuplas no importa.

49 Bases de Datos Entidades Son los objetos que aparecen en la vida real. Una entidad va a ser representado en una Base de Datos. Existen 2 tipos: Entidad Fuerte: hacen referencia a la propia entidad. Entidad Débil: es aquella que solo tiene sentido gracias a las propiedades que identifican a otras entidades (fuertes o a su vez débiles).

50 Atributos Es una característica o propiedad de una entidad.
Bases de Datos Atributos Es una característica o propiedad de una entidad. Se identifica con un nombre y todos los posibles valores que puede tener.

51 Describe un conjunto de posibles valores para cierto atributo
Bases de Datos Dominios Describe un conjunto de posibles valores para cierto atributo 2 tipos de dominios: Dominios generales o continuos: son aquellos que contienen todos los posibles valores entre un máximo y un mínimo definido. Dominios Restringidos o discretos: son aquellos que contienen ciertos valores entre un máximo y un mínimo predefinido.

52 Bases de Datos Claves La Clave es un atributo o conjunto de atributos cuyos valores distinguen a una tupla especifica de una tabla. Pueden existir varias claves únicas en una determinada tabla, y a cada una de estas se las suele llamar “claves candidatas”.

53 Bases de Datos Clave Primaria Es una clave única elegida entre todas las claves candidatas que define unívocamente a todos los demás atributos de la tabla, para especificar los datos que serán relacionados con las demás tablas. No puede estar duplicada y contener valores “Null”

54 Bases de Datos Claves Foráneas Es una referencia a una clave de otra tabla( siempre que tengan el mismo tipo de dato). Determina la relación existente entre dos tablas.

55 Bases de Datos Interrelaciones Decimos que dos relaciones están interrelacionadas cuando una posee una clave foránea de la otra. Es una asociación entre tablas mediante los atributos que tienen el mismo dominio. Existen dos tipos de interrelaciones: La interrelación entre entidades fuertes y débiles. La interrelación entre entidades fuertes.

56 Operaciones Básicas Unarias: Selección y Proyección
Bases de Datos Operaciones Básicas Unarias: Selección y Proyección Binarias: Unión, Diferencia y Producto Cartesiano

57 Operaciones Básicas Unarias
Bases de Datos Operaciones Básicas Unarias Selección: obtiene un subconjunto de filas de una tabla con todas sus columnas, creando con este subconjunto una nueva tabla. Se representa como: S (tabla, (condición)) Proyección: obtiene un subconjunto de columnas de una tabla con todas sus filas, creando con este una nueva tabla. Se representa como: P (tabla, (atributo1, atributo2, …))

58 Operaciones Básicas Binarias
Bases de Datos Operaciones Básicas Binarias Unión: la unión de dos tablas solo se puede realizar si tienen el mismo grado (número de columnas) y los dominios son compatibles. Da como resultado una nueva tabla con las columnas de una de ellas y las filas de ambas tablas. Se representa con el símbolo U. Join: se obtiene de realizar el producto cartesiano y aplicar sobre la tabla resultante una selección preestablecida denominada “selección”. Diferencia: se realiza si ambas tablas tienen el mismo grado y los dominios son compatibles. Se representa como: R-T. Producto Cartesiano: se realiza entre dos tablas y da como resultado una nueva tabla cuyo grado es la suma de los grados de las dos tablas. Se representa como: RxS.

59 Reglas de Codd: 1- Regla de información.
Bases de Datos Reglas de Codd: 1- Regla de información. 2- Regla de acceso garantizado. 3- Tratamiento sistemático de valores nulos. 4- Catalogo en línea dinámico. 5- Regla de sublenguaje completo de datos. 6- Regla de actualización de vista 7- Inserción, modificación y borrado de alto nivel. 8- Independencia física de los datos. 9- Independencia lógica de los datos. 10- Independencia de integridad. 11- Regla de no subversión.

60 Bases de Datos Guía de Lectura Capitulo 2 Modelo Entidad RELACIÓN (BD silberschatz.pdf) Capitulo 3 Modelo Relacional (BD silberschatz.pdf)

61 UNIDAD III Parte 2 Modelo Relacional
Bases de Datos UNIDAD III Parte 2 Modelo Relacional Clase expositiva 9, 10, 11, 12, 13 y 14

62 Proceso de Normalización
Bases de Datos Proceso de Normalización La normalización es el proceso de organizar los datos de una base de datos. Incluye la creación de tablas y las relaciones entre ellas según reglas diseñadas para proteger los datos como para eliminar la redundancia. Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Hay algunas reglas en la normalización de una base de datos. Cada regla se denomina una "forma normal“.

63 Primera Forma Normal Una tabla se dice que esta en 1FN si y sólo si:
Bases de Datos Primera Forma Normal Una tabla se dice que esta en 1FN si y sólo si: los valores que componen el atributo de una tupla son atómicos. La tabla contiene una clave primaria única. La clave primaria no contiene atributos nulos. Un atributo solo debe mantener valores elementales o únicos. Debe Existir una independencia del orden tanto de las filas como de las columnas. Pasos a seguir para Normalizar en Primera Forma Normal: Elimine los grupos repetidos de las tablas individuales. Cree una tabla independiente para cada conjunto de datos relacionados. Identifique cada conjunto de datos relacionados con una clave principal

64 Primera Forma Normal (1FN)
Bases de Datos Primera Forma Normal (1FN) No esta normalizada ya que no existen relaciones atómicas entre los dominios. Anomalía ¿De qué tamaño es un registro? Entidad en 1FN En el producto cartesiano todos los dominios tienen valores atómicos

65 Bases de Datos Segunda Forma Normal La Segunda Forma Normal está basada en el concepto de dependencia completamente funcional. Una tabla se dice que esta en 2FN si y solo si cumple dos condiciones: Se encuentra en 1FN. Todo atributo secundario ( aquéllos que no pertenecen a la clave principal) depende totalmente de la clave completa.

66 Dependencias Funcionales
Bases de Datos Dependencias Funcionales Es una conexión entre uno o más atributos. Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento Edad Dependencia Funcional Transitiva: Se aplica para analizar las tablas en tercera forma normal (3FN). Consiste en considerar que “un atributo no primario solo debe conocerse a través de la clave principal o claves secundarias. A B y B A Se dice que C tiene una dependencia funcional transitiva con A si se cumple que B C.

67 Segunda Forma Normal (2FN)
Bases de Datos Segunda Forma Normal (2FN) Sin embargo la 1FN tiene problemas cuando los atributos tienen dependencia de varias llaves o dominios independiente. Anomalía ¿Qué pasa cuando dejo de comprarle a TASA ? Entidades en 2FN Las entidades están en 1FN y además cada dominio o atributo depende de un sola llave: Ent 1 Nombre ==> Ant, Dir,Cd Ent 2 Nombre, Producto ==> Cant

68 Bases de Datos Tercera Forma Normal Se dice que esta en 3FN si y solo si se cumplen dos condiciones: Se encuentra en 2FN. Cada atributo secundario solo se debe conocer a través de la clave principal o claves secundarias de la tabla y no por medio de otro atributo primario.

69 Tercera Forma Normal (3FN)
Bases de Datos Tercera Forma Normal (3FN) Sin embargo la 2FN tiene problemas cuando uno de los atributos tienen dependencia transitiva de los dominios o atributos Anomalía ¿Qué pasa cuando TASA de ser mi proveedor? Entidades en 3FN Las entidades están en 2FN y además cada dominio o atributo depende NO transitivamente de un sola llave: Ent 1 Nombre ==> Ant, Direcciones Ent 3 Direcciones ==> Ciudad

70 Bases de Datos Tercera Forma Normal Se dice que esta en 3FN si y solo si se cumplen dos condiciones: Se encuentra en 2FN. Cada atributo secundario solo se debe conocer a través de la clave principal o claves secundarias de la tabla y no por medio de otro atributo primario.

71 Dependencias Funcionales
Bases de Datos Dependencias Funcionales Dependencia Funcional Transitiva: DF Transitiva Se aplica para analizar las tablas en tercera forma normal (3FN). Consiste en considerar que “un atributo no primario solo debe conocerse a través de la clave principal o claves secundarias. DF Clave Atributos con DFT Atributos con DF Transitiva

72 (Dependencia Funcional Transitiva)
Tercera Forma Normal (Dependencia Funcional Transitiva) E S E F T F G G A A H H I I J J K K E S F T

73 Forma Normal de Boyce-Codd
Bases de Datos Forma Normal de Boyce-Codd Una tabla esta en FNBC si y solo si las únicas dependencias funcionales elementales son aquellas en las que la clave principal y claves secundarias determinan un “atributo”.

74 Dependencia Multivaluada (DMV)
Bases de Datos Dependencia Multivaluada (DMV) La dependencia multivaluada es un concepto que se introduce para tratar la 4FN. Es necesario que entre dos atributos el resto de los campos sean independientes. Deben existir al menos 3 atributos para que haya dependencia multivaluada. la definición dice: “sean A, B y C tres subconjuntos distintos de atributos de una tabla T se dice que A tiene una dependencia multivaluada con B, que A multidetermina B, o que B depende multivaluadamente de A y se escribe: A B Si para cada valor de A existen un conjunto de valores B asociados y esta es independiente del resto de atributos C”. Dependencia Join: Es una dependencia entre tablas

75 Bases de Datos Cuarta Forma Normal Se aplica para eliminar las DMV de las tablas (por redundancia de datos). Se dice que esta en 4FN si esta en FNBC Las únicas DMV existentes son las DF de la clave con los atributos secundarios. Es como FNBC, pero con dependencias multivaluadas.

76 Bases de Datos Quinta Forma Normal Es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multivalores aislando semánticamente relaciones múltiples relacionadas. Debe cumplir dos condiciones: encontrarse en 4FN. Toda Dependencia Join viene implicada por las claves de la tabla.

77 Forma Normal de Boyce-Codd
Bases de Datos Forma Normal de Boyce-Codd Una tabla esta en FNBC si y solo si las únicas dependencias funcionales elementales son aquellas en las que la clave principal y claves secundarias determinan un “atributo”.

78 Dependencia Multivaluada (DMV)
Bases de Datos Dependencia Multivaluada (DMV) La dependencia multivaluada es un concepto que se introduce para tratar la 4FN. Es necesario que entre dos atributos el resto de los campos sean independientes. Deben existir al menos 3 atributos para que haya dependencia multivaluada. la definición dice: “sean A, B y C tres subconjuntos distintos de atributos de una tabla T se dice que A tiene una dependencia multivaluada con B, que A multidetermina B, o que B depende multivaluadamente de A y se escribe: A B Si para cada valor de A existen un conjunto de valores B asociados y esta es independiente del resto de atributos C”. Dependencia Join: Es una dependencia entre tablas

79 Bases de Datos Cuarta Forma Normal Se aplica para eliminar las DMV de las tablas (por redundancia de datos). Se dice que esta en 4FN si esta en FNBC Las únicas DMV existentes son las DF de la clave con los atributos secundarios. Es como FNBC, pero con dependencias multivaluadas.

80 Bases de Datos Quinta Forma Normal Es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multivalores aislando semánticamente relaciones múltiples relacionadas. Debe cumplir dos condiciones: encontrarse en 4FN. Toda Dependencia Join viene implicada por las claves de la tabla.

81 Normalización: Redundancia controlada
Bases de Datos Normalización: Redundancia controlada La normalización genera más entidades, sin embargo esta redundancia aparente esta controlada por el manejador de BD, siendo ajena para el usuario. Por otro lado el tamaño de los archivos tiende a reducirse. Entidades normalizadas Entidad sin normalizar

82 Normalización Ulterior
Bases de Datos Normalización Ulterior La normalización puede ser continuada mas allá de la 3FN, existen argumentos académicos interesantes para la existencia de BCFN Forma Normal de Boyce y Codd Las entidades están en 3FN y además todo dominio independiente es una llave candidato: Ent={A,B,C,D} y las depencias son A==> BCD y D==>A aqui A y D son llaves 4FN Cuarta Forma Normal Las entidades están en BCFN y además no se tienen dependencias multievaluadas 5FN Quinta Forma Normal D/KFN Forma Normal de Dominio y Llave Para los propósitos de una operación administrativa la 3FN es suficientemente poderosa. :

83 Bases de Datos Guía de Normalización 1. Defina los Dominios ( Atomice lo mínimo necesario ) 2. Defina los Formatos ( Defina formatos comunes ) 3. Escriba todas las suposiciones semánticas iniciales 4. Obtenga la Tabla de Dependencias (conectando todos los dominios)  5.Determine las dependencias funcionales ( sentido de la fecha, dominios independientes conjuntos ) 6. Elimine las dependencias transitivas 7. Partiendo de la Tabla de Dependencias obtenga: Las entidades mínimas necesarias, tomando cada dominio(s) independiente para entablar a la entidad.  8. Complete la lista de suposiciones semánticas  9. Presente los resultados: Dominios, Entidades, Suposiciones 10. Obtenga aprobación firmada de la definición ó en caso necesario efectúe las modificaciones requeridas (un buen diseño debe no contener más de 100 dominios y 40 entidades por sistema )

84 Elementos del modelo Entidad - Relación
Bases de Datos Elementos del modelo Entidad - Relación Elementos Rectángulo Representa entidades básicas Doble Rectángulo Representa entidades débiles que no tienen llaves primarias Diamante identificador de relaciones Elipse Atributos de la entidad, si esta subrayado es llave primaria Línea Ligas

85 Modelo Entidad - Relación
Bases de Datos Introduce el enfoque de Orientado a Objetos al definir tipos de datos que encapsulen a una entidad completa como un nuevo objeto Permite analizar partes de una Base de Datos de mayor dimensión (muchos dominios) a nivel entidades sin tener que estudiar todos los dominios específico que se vuelven atributos de las mismas.

86 Bases de Datos Guía de Lectura Capitulo 5 El Modelo Relacional y Normalización (BD D Kroenke.pdf) Capitulo 6 Diseño de Bases de Datos Utilizando Modelos E/R (BD D Kroenke.pdf)

87 Trabajo Práctico Sistema del mercado de Frutas
Bases de Datos Trabajo Práctico Sistema del mercado de Frutas

88 Descripción de las reglas de negocio
Bases de Datos Descripción de las reglas de negocio Puestos M1 Puestos M2 Puestos M3

89 Bases de Datos

90 Bases de Datos

91 Para generar los gráficos de dependencia funcional se debe estudiar
Bases de Datos Para generar los gráficos de dependencia funcional se debe estudiar que zonas del mismo se tratan primero. Estas serán conformadas por los las entidades y relaciones con mayor cohesión. De dicha zona se desarrolla el grafico, mostrando solo las DF afectadas. Una vez normalizada la zona, se continúa con las siguientes. Zona 1 formado por la relación DISTRIBUIR Zona 2 formada por las relaciones SUMINISTRAR TENER POSEER VENDER Zona 3 HACER FACTURAS RECIBIR FACTURAS FACTURAR

92 Bases de Datos

93 Bases de Datos

94 2FN - Dependencia Funcional Total
Bases de Datos 2FN - Dependencia Funcional Total CodFru CmeFru CodPto NOMMER DIRMER CIUMER CodMer CPOMER CPRMER PROMER TELMER CIFPTO NOMPTO NPRPTO NOMFRU NMEFRU STKPTO PVEFRU

95 Bases de Datos

96 2FN - Dependencia Funcional Total
Bases de Datos 2FN - Dependencia Funcional Total CodFru CmeFru CodAlm NumFac

97 Bases de Datos Diseño Global

98 6. Integridad y seguridad: Directorio de Datos
Bases de Datos 6. Integridad y seguridad: Directorio de Datos Las bitácoras modelan y registran los procesos que se efectúan dentro de la base de datos Se logra por medio de almacenar los datos asociados con la ejecución de los comandos del SQL de la base de datos (altas bajas cambios, perdidas) . Contienen el QUE, QUIEN, COMO, DONDE y CUANDO de la BD

99 BITACORAS: QUE, QUIEN, COMO, DONDE y CUANDO
Bases de Datos Bitácora de Usuarios: Usuario, Password, depto, sistema, archivos, terminal, permisos Bitácora de Archivos: Password, Dueño, sistema que los usan, dominos, formatos, ubicación, usuarios Catálogo de Sistemas: Depto, sistema, archivos, terminal, programas, responsable Bitácora de Errores: Tipo, programa, descripción, hora, lugar, usuario, fecha, archivo, sistema Bitácora de Uso: Fecha, Usuario, Sistema, Permiso, Terminal, Registro, tipo de a,cceso Imagen Vieja, Imagen Nueva Manuales del Sistema: Sistema, depto, archivos, procedimiento de uso, nivel de sistematización/automatización

100 Normalización del Directorio
Bases de Datos Ejemplo de las dependencias funcionales de la bitácora de uso

101 Uso de la Bitácora Ante estas actualizaciones en las
Bases de Datos Ante estas actualizaciones en las Entidades TAM y ABC la bitácora refleja la siguiente actividad

102 Bases de Datos Recuperación

103 Arranque en Frío Determinación de la Entidad (Archivo) perdido
Bases de Datos Arranque en Frío Determinación de la Entidad (Archivo) perdido Cargado del último respaldo Ordenamiento de la bitácora según el archivo perdido Lectura de Imágenes nuevas de cada registro de la entidad en cuestión Lectura de Imágenes viejas de la bitácora y corroboración con la imagen en el respaldo Actualización correspondiente de más antiguo a más reciente

104 Bases de Datos Respaldos Respaldar la base de datos BD cuando se llene la bitácora de uso Respaldar la bitácora de uso y limpiarla la copia actual Se deben mantener copias de la BD y la bitácora en el sitio Es recomendable tener una copia adicional en un lugar ajeno físicamente de la instalación El tamaño de la bitácora es función del número de actualizaciones que tenga la base de datos

105 Arranque en Caliente Determinación del último punto estable
Bases de Datos Arranque en Caliente Determinación del último punto estable Lectura de imágenes viejas de los archivos modificados en el período de inestabilidad del proceso usando la bitácora de uso Lectura de imágenes nuevas de la bitácora y corroboración con la imagen en el archivo Desactualización de los archivos por medio del reemplazo de imágenes viejas por nuevas Aviso a los usuarios para que repitan las actualizaciones efectuadas durante el período de inestabilidad

106 Camino al cambio de las TI
Bases de Datos Camino al cambio de las TI SER == > Existencia de Carencias Sistema caótico, dependiente y limitado Querer Ser == > Convencimiento Unificación y Confianza Saber Ser == > Compromiso Preparación, Selección, Capacitación Poder Ser == > Costo Inversión Adecuada en tecnología DEBER SER == > Crecimiento e Innovación Libertad, Eficiencia, Confiabilidad e Independencia

107 Estrategias en Base de Datos
Bases de Datos Estrategias en Base de Datos Para convencer Simulaciones en Hoja de Cálculo Para unificar y generar confianza Llevar a Base de Datos las aplicaciones nuevas Para promover la cooperación Primero llevar a Base de Datos los procesos externos

108 Introducción a SQL Basado en ORACLE

109 Lenguajes para BD: álgebra y cálculo relacional
Bases de Datos Lenguajes para BD: álgebra y cálculo relacional El LDD es el Lenguaje de Definición de los Datos El LMD es el Lenguaje de Manipulación de los Datos Existen dos grandes clases de lenguajes de consulta y acceso relacional: Basados en álgebra relacional El prototipo de esta clase es el denominado SQL (Structured Query Language) Select PROV.PROV# From PROV Where PROV.CIUDAD = “Puebla” Basados en el cálculo de predicados. El prototipo de esta tipo de lenguajes es el PROLOG

110 Lenguaje de las Base de Datos
Bases de Datos Lenguaje de las Base de Datos Los SGBD emplean como lenguaje estándar el SQL. El SQL es un lenguaje Declarativo que permite la definición, construcción y la manipulación de datos. Tipos de sentencias: DML (Data Manipulation Languaje) DDL (Data Definition Languaje)

111 Tipo de Comando Comandos Descripción Recuperación de Datos SELECT Recupera los datos de la base de Datos. Es el comando utilizado con mayor frecuencia. DML Lenguaje de Manipulación de Datos INSERT UPDATE DELETE Ingresa nuevas filas, modifica filas existentes y elimina filas de tablas de la base de datos, respectivamente. DDL Lenguaje de Definición de Datos CREATE ALTER DROP RENAME TRUNCATE Crea, modifica y eliminan estructuras de datos desde las tablas. Control de Transacción COMMIT ROLLBACK SAVEPOINT Maneja los cambios hechos por las sentencias DML. Los cambios a los datos pueden ser agrupados en transacciones lógicas. DCL – Lenguaje de Control de Datos GRANT REVOKE Permite o restringe los derechos de acceso a la base de datos Oracle y a las estructuras dentro de ésta.

112 SQL

113 Esquema de Base de Datos
Cursa 1 M 1 M M Alumnos Examenes 1 Efectua Pertenece Materias M Pertenece 1 Departamentos

114 Definición de Tablas Claves Primarias

115 Definición de Tablas Claves Secundarias

116 Sintaxis SQL Una sola tabla Múltiples tablas
SELECT atributo1, atributo2, ... FROM tabla WHERE {condiciones1} and/or condiciones2} ORDER BY {atributo1, atributo2} Múltiples tablas SELECT tabla.atributo1, tabla.atributo2, ... FROM tabla1, tabla2 WHERE {tabla1.columna = tabla2.columna} AND {condiciones1} and/or condiciones2} ORDER BY {tabla.atributo1} ASC/DES

117 Ejemplo consulta en SQL
Tabla ALUMNOS NLEGAJO APELLIDO PROMEDIO 1 Velasquez 2 Perez 3 Dominguez 4 Gonzalez ... Tabla MATERIAS NLEGAJO NOMBREMATER CODDEPTO Sistemas I Contabilidad II ... Matematicas Psicología Tabla DEPARTAMENTOS CODDEPTO NOMBREDEPTO Informatica Contable Exactas Sociales Ciencias Empresarias Ciencias Industriales ...... Ejemplo Mostrar el Legajo, Apellido del Alumno, Nombre de la materia que cursa y Nombre del departamento que pertenece la materia de los alumnos cuyo promedio es superior a 7 puntos. SELECT ALUMNOS,nlegajo,ALUMNOS.apellido, MATERIAS.nombremater,DEPARTAMENTOS.nombredepto FROM ALUMNOS,MATERIAS, DEPARTAMENTOS WHERE ALUMNOS.nlegajo = MATERIAS.nlegajo AND MATERIAS.coddepto = DEPARTAMENTOS.coddepto AND ALUMNOS.promedio > 7;

118 Bloque de Consulta Básico
Una sentencia SELECT recupera información desde la base de datos, implementando todos los operadores algebraicos. SELECT [DISTINCT] {*,column [alias] , } FROM table; Donde: SELECT identifica qué columnas. DISTINCT suprime duplicados. * Recupera todas las columnas. Columna: recupera la columna nombrada. alias: asigna a la columna recuperada un encabezamiento diferente. FROM table especifica la tabla que contiene las columnas. En su forma más simple, una sentencia SELECT puede incluir: Una cláusula SELECT, que especifica las columnas a ser visualizadas. Una cláusula FROM, que especifica la tabla que contiene las columnas listadas en la cláusula SELECT

119 Escritura de Comandos SQL
Los Comandos pueden constar de una o varias líneas Se puede ubicar las cláusulas en diferentes líneas y usar tabulaciones e indentaciones para mayor legibilidad y facilidad de edición. No están permitidas las abreviaturas y separación de palabras. Los comandos SQL no son case sensitive, salvo los indicados. Un comando SQL se ingresa en el prompt SQL y las líneas subsiguientes están numeradas. Esto se llama el buffer SQL. En el buffer puede haber una sentencia por vez y la misma puede ser ejecutada de diferentes formas: Tipear un punto y coma (;) al final de la última cláusula Tipear un punto y coma (;) o una barra (/) en la última línea del buffer Tipear un slash en el prompt de SQL

120 Negocio de Artículos Deportivos Esquema de base de datos
S_ITEM S_ORD S_CUSTOMER S_INVENTORY S_EMP S_PRODUCT S_WAREHOUSE S_DEPT S_REGION Ver estructura de Datos en C:\03 RG \03 - MARIA REINA\1 Bibliografía\04 SQL 0 Itroducción.doc

121 Ejemplo: Selección de Todas las Columnas y Filas
SQL> SELECT * 2 FROM s_dept; ID NAME REGION_ID 10 Finance 31 Sales 32 Sales 33 Sales 34 Sales 35 Sales 41 Operations 42 Operations 43 Operations 44 Operations 45 Operations 50 Administration 12 filas seleccionadas.

122 Ejemplo: Selección Columnas específicas
SQL> SELECT dept_id, last_name, manager_id 2 FROM s_emp; DEPT_ID LAST_NAME MANAGER_ID 50 Velasquez 41 Ngao 31 Nagayama 1 10 Quick-To-See 1 50 Ropeburn 1 41 Urguhart 2 42 Menchu 43 Biri . . . 25 filas seleccionadas. Etiquetas de Columnas Por defecto la etiqueta es el nombre dado a la columna en la definición de la tabla. Se puede reemplazar el nombre de la columna con un alias. Por defecto, las etiquetas se muestran en mayúsculas. Las etiquetas de las columnas tipo carácter o fecha se justifican a la izquierda dentro de la columna. Las etiquetas de las columnas tipo número se justifican a la derecha dentro de la columna.

123 Expresiones Aritméticas
Se puede crear expresiones aritméticas sobre tipos de datos numéricos y fechas. Una expresión aritmética puede contener nombres de columnas, valores numéricos, constantes y operadores aritméticos. Se pueden usar los operadores aritméticos en cualquier sentencia de SQL excepto en la cláusula FROM. Ejemplo: SQL> SELECT last_name, salary, salary*12 2 FROM s_emp; LAST_NAME SALARY SALARY*12 Velasquez Ngao Nagayama Quick-To-See Ropeburn Urguhart . . . Operadores Descripción + Suma - Resta * Multiplicación / División

124 DISTINCT con Varias Columnas
DISTINCT se aplica a todas las columnas de la lista de la cláusula SELECT. Cuando DISTINCT se aplica a varias columnas, el resultado representa las diferentes combinaciones SQL> SELECT DISTINCT dept_id, title 2 FROM s_emp; DEPT_ID TITLE 10 VP, Finance 31 Sales Representative 31 VP, Sales 32 Sales Representative 33 Sales Representative . . . 21 filas seleccionadas.

125 [ORDER BY {columna, expr} [ASC | DESC] ] ;
La cláusula ORDER BY El orden de las filas recuperadas por una consulta es indefinido. La cláusula ORDER BY se puede usar para ordenar las filas. SELECT expr FROM tabla [ORDER BY {columna, expr} [ASC | DESC] ] ; Donde: ORDER BY especifica e orden en el cual se muestran las filas recuperadas. ASC ordena las filas en orden ascendente. Este es el valor por defecto. DESC ordena las filas en orden descendente. Ejemplo SQL> SELECT last_name, dept_id, start_date 2 FROM s_emp 3 ORDER BY last_name; LAST_NAME DEPT_ID START_DA Biri /04/90 Catchpole /02/92 Chang /11/90 Dancs /03/91 Dumas /10/91

126 Restricción de las Filas seleccionadas con la cláusula WHERE
Se puede restringir las filas recuperadas usando la cláusula WHERE. Una Cláusula WHERE contiene la condición que se debe cumplir y se ubica a continuación de la cláusula FROM. SELECT expr FROM tabla [WHERE condicion(es) ] [ORDER BY expr ] ;  Donde: WHERE restringe la consulta a las filas que cumplen una condición. condición se compone de nombres de columnas, expresiones, constantes y operadores de comparación. La cláusula WHERE se ubica a continuación de la cláusula FROM. Las condiciones consisten en lo siguiente: Nombre de columna, expersión, constante. Operador de comparación. Literal Ejemplo SQL> SELECT dept_id, last_name, salary 2 FROM s_emp 3 WHERE dept_id = 42; DEPT_ID LAST_NAME SALARY 42 Menchu 42 Nozaki 42 Patel

127 Operadores de Comparación Operador BETWEEN
Selecciona las filas que se encuentran dentro de un rango de valores. El rango que se especifica contiene un valor inferior y otro superior, se debe espcificar primero el límite inferior del rango. Los valores especificados con el operador BETWEEN se incluyen. Ejemplo Seleccionar los departamentos cuyo numero de región está entre 2 y 4 inclusive. SQL> SELECT id, name, region_id 2 FROM s_dept 3 WHERE region_id BETWEEN 2 AND 4; ID NAME REGION_ID 32 Sales 33 Sales 34 Sales 42 Operations 43 Operations 44 Operations 6 filas seleccionadas. Operador Significado = Igual a Mayor que >= Mayor o igual que Menor que <= Menor o igual que BETWEEN...AND... Entre dos valores (inclusive) IN (list) Coincide con cualquier valor de la lista LIKE Coincide con un patrón de caracteres IS NULL Es un valor nulo Operadores Lógicos Operador Significado AND Si ambos componentes de la condición son verdaderos, el resultado también OR Si algún componente de la condición es verdadero, el resultado también NOT Retorna la condición negada Negación de Operadores Operador Significado <> No igual a (en todos los sistemas operativos). Hay otras formas de expresarlo, dependiendo de los sistemas ( ‘!=’ para VAX, UNIX,PC ; ‘^= ‘ o ‘:=’ para IBM) NOT nombre-columna = No igual a NOT nombre-columna > No mayor que NOT BETWEEN...AND... No está entre los valores especificados NOT IN (list) No está dentro de la lista especificada NOT LIKE No es como la cadena de comparación IS NOT NULL No es un valor nulo

128 Bases de Datos Ejemplos de SQL Asumiendo la existencia de los siguientes archivos (entidades) Muebles :  ( Mueble, Descripción Mueble ) Direcciones : ( Dirección, Cliente ) Ensambles : ( Herraje, Mueble, Número ) Herrajes : ( Herraje, Descripción Herraje, Calidad, Precio )  Ordenes : ( Folio, Dirección, Fecha ) Detalles : ( Folio, Línea Detalle, Cantidad, Herraje ) Inventarios : ( Planta, Herraje, Inventario )  Plantas :  ( Planta, Descripción Planta )  Descuentos :  ( Herraje, Volumen, % Descuento )

129 Bases de Datos Solución del SQL

130 Bases de Datos Ejemplos de SQL (2) Asumiendo la existencia de los siguientes archivos (entidades)

131 Bases de Datos Solución del SQL (2)

132 Ejemplo Numérico Se obtienen las siguientes tuplas
Bases de Datos Ejemplo Numérico Se obtienen las siguientes tuplas Asumiendo estos datos en las entidades

133 8. Manejo de Transacciones
Bases de Datos 8. Manejo de Transacciones Transacciones, Serialización Enfoques de solución Protocolo de bloque en dos fases Transacciones Consistencia Estado de transacciones Diagrama de estado en una transacción Recuperación de falla

134 Criterios en una Transacción
Bases de Datos Criterios en una Transacción En su diseño Correctitud Una transacción debe mantener la consistencia de la BD Atomicidad Una transacción debe manejarse como un objeto atómico, esto es no puede ejecutarse un pedazo del mismo únicamente, o se completa toda o no se completa Activa: SI se encuentra en proceso de ejecución Parcialmente Comprometida: se ha ejecutado parte de ella (es estado temporal) Fallida: NO puede ser completada (requiere ser terminada) Terminada: Se efectúa un ROLLBACK para deshacer el proceso Comprometida: Se efectúa un COMMIT para completarla En su ejecución

135 Ejemplo de transacción
Bases de Datos

136 Bibliografía Date C. J. Data Base Systems
Bases de Datos Bibliografía Date C. J. Data Base Systems Procesamiento de Bases de datos D Kroenke

137 Diseño de Bases para Almacenes
Bases de Datos Diseño de Bases para Almacenes

138

139

140

141

142

143

144 Tablas Normalizadas Tabla Mercados Tabla Almacenes Tabla Provincias
Tabla AlmFru Tabla Puestos Tabla Ciudad Tabla Medidas Tabla Frutas Tabla Almmer Tabla Propietarios

145 Tablas Normalizadas Esta tabla está bien diseñada ¿? Tabla PtoFru
Tabla FACTURAS Esta tabla está bien diseñada ¿?

146 Creación de una Base de Datos

147 Crear una base de datos nueva
Al iniciar el programa se presentará el panel de Nuevo archivo, en el que podemos abrir y crear una base de datos. 28/04/2017

148 Crear una base de datos nueva
Si se selecciona Base de datos en blanco y se hace clic. Aparecerá otro cuadro de diálogo en el que se dará nombre a la base de datos que se va a crear. Se debe utilizar un nombre apropiado y relacionado con el contenido de la base de datos, para poder recuperarla con facilidad posteriormente. 28/04/2017

149 Crear una base de datos nueva
Se escribe el nombre en Nombre de archivo y se pulsa el botón crear. Desde esta ventana se trabajan las bases de datos de Access. Seleccionando las pestañas se accede a los distintos elementos que componen una base de datos; tablas, consultas, formularios, informes, macros y módulos. 28/04/2017

150 Crear una base de datos nueva
Para volver a esta ventana desde cualquier otra se pulsa el botón Seleccionado el objeto adecuado y pulsando el botón xxxxxx, se crea un objeto del tipo seleccionado. El botón de la barra de herramientas cambia dependiendo del último objeto creado. Al pulsarlo se creará otro objeto similar al último creado. Si se quiere elegir otro objeto sólo hay que hacer clic sobre la flecha de la derecha. Se desplegará el menú de todos los elementos de Access. 28/04/2017

151 Crear una base de datos nueva
En este menú se encuentran todos los elementos que componen Access. Para crear uno de ellos, basta con situar el ratón por encima de él y hacer clic. 28/04/2017

152 Crear una base de datos nueva
Otra forma de crear un elemento de Access sin seleccionar la pestaña es a través del menú Insertar. 28/04/2017

153 Creación de Tablas

154 Tablas Para empezar a trabajar con una base de datos primero es necesario crear las tablas. Dentro de cada una hay que definir los campos que contendrán la información. Igual que cualquier otro objeto de la base de datos, hay varias formas de crear una tabla nueva: desde el menú. desde la barra de herramientas. desde la ventana de la base de datos. 28/04/2017

155 Tablas: Creación desde el menú
Para crear una tabla desde los menús hay que seleccionar el menú Insertar y dentro de este el comando Tabla. 28/04/2017

156 Tablas: Creación desde el menú
Aparece el siguiente cuadro de diálogo: 28/04/2017

157 Tablas: Creación desde el menú
Estas son las diferentes opciones que presenta Access para crear una tabla: Vista hoja de datos: crea una nueva tabla con formato de tabla. En la primera fila de la tabla aparecen los campos: Campo 1, Campo 2, etc., sobre los cuales se escriben los nombres de los campos. Vista diseño: permite crear los campos manualmente y configurar el diseño de la tabla. Asistente para tablas: el asistente pide las características de los campos y de la tabla y la genera automáticamente. Importar tabla: esta opción permite importar datos de otra base de datos, que no necesariamente tiene que estar creada por Access. Vincular tabla: crea vínculos entre las tablas importadas y las originales, las modificaciones que se efectúen en los datos se transmiten a aquéllas. 28/04/2017

158 Tablas: Creación desde la barra de herramientas
Para crear una tabla desde la barra de herramientas hay que pulsar el botón , y elegir el comando Tabla. Muestra el mismo cuadro de diálogo que si se hubiera realizado desde el menú insertar. 28/04/2017

159 Tablas: Creación desde la ventana de la base de datos
Para poder crear una tabla desde esta ventana hay que tener seleccionado el botón de la barra de objetos. 28/04/2017

160 Tablas: Creación desde la ventana de la base de datos
Ahora hay dos opciones: Pulsar el botón : Nos volverá a presentar el mismo diálogo de creación. Pulsar cualquiera de las tres ordenes que contiene la vista: Crear una tabla en vista diseño. Corresponde a Vista diseño de los puntos anteriores. Crear una tabla utilizando el asistente. Corresponde al Asistente para tablas. Crear una tabla introduciendo datos. Corresponde a Vista hoja de datos. Cualquiera de estas opciones es válida para crear una tabla. Pero las opciones a través de las cuales se crea personalmente una tabla son vista hoja de datos y vista diseño. Con la opción vista diseño se crea la estructura para luego rellenar los datos en vista hoja de datos. Pero también se puede empezar directamente en vista hoja de datos introduciendo información y Access crea la estructura automáticamente. Independientemente del método utilizado para crear una tabla, se puede emplear la vista diseño en cualquier momento para personalizar más la tabla, por ejemplo para agregarle campos nuevos. 28/04/2017

161 Tablas: Vista Diseño Parar pasar a la vista diseño, debemos seleccionar: Aparece una ventana donde se puede o bien definir un diseño para nuestra tabla, si no se había hecho antes, o bien se puede modificar o agregar campos nuevos. En una palabra, se puede cambiar el Diseño de la tabla. 28/04/2017

162 Tablas: Vista Diseño Este diálogo se compone de tres partes. Arriba se nos muestran los campos, su tipo y la descripción. Abajo a la izquierda se nos muestra las propiedades del campo seleccionado y abajo a la derecha se nos muestra una ayuda sensible a lo que estemos realizando. En la parte superior tenemos tres columnas. En la primera columna se ven los nombres de los campos, en la segunda columna el tipo de datos que ha elegido automáticamente Access XP con los datos introducidos (si hemos creado la tabla en vista hoja de datos) y en la tercera una descripción que podemos introducir al campo que Access podrá usar cuando se creen formularios e informes . 28/04/2017

163 Tablas: Vista Diseño Ahora veremos el significado de cada propiedad del campo que nos aparece en la Vista Diseño de nuestra tabla: 28/04/2017

164 Tablas: Vista Diseño Tamaño del Campo:
Aquí determinamos el espacio que queremos asignar al campo, el número máximo de caracteres que queremos almacenar. Para Texto este valor no puede ser mayor de 255. Para numérico por ejemplo, puede ser Entero Largo (entre millones y millones) o Doble (para valores decimales). Formato: Determina cómo se muestran los datos (por ejemplo moneda o fecha). Cuando un valor puede tener formato lo seleccionamos desde la lista desplegable. 28/04/2017

165 Tablas: Vista Diseño Lugares decimales:
Aquí seleccionamos el número de decimales que Access muestra en los campos de tipo Moneda o Numérico. Máscara de entrada: Esta propiedad sirve para introducir datos válidos en un campo. Por defecto no hay ninguna máscara de entrada pero en ocasiones nos puede ser útil (sobre todo para las fechas). Título: Es una propiedad opcional, nos sirve si queremos que el nombre de un campo en vista de Hoja de datos sea distinto del nombre del campo en la Vista Diseño. 28/04/2017

166 Tablas: Vista Diseño Valor predeterminado:
Nos puede ser útil si tenemos siempre el mismo valor en el campo (o casi siempre). Si por ejemplo en nuestra tabla de autores el apellido que más se repita es "García" podemos definirlo como el valor predeterminado. Para eso simplemente escribimos el valor predeterminado en la propiedad del campo o pulsamos el botón con "..." para generar expresiones complejas. Regla de Validación y Texto de Validación: Son propiedades avanzadas que permiten limitar los valores que introducimos en un campo (Regla) y definir el mensaje de error cuando introducimos un valor prohibido por la regla (Texto). Requerido: Por defecto está puesto "No", pero si lo seleccionamos Access no nos permitiría dejar un campo en blanco. Permitir longitud cero: Permitir o No las cadenas de longitud cero. Por defecto es "No". 28/04/2017

167 Tablas: Vista Diseño Indexado:
El indexado permite acelerar los procesos de búsqueda y ordenación pero hace aumentar el tamaño de la base de datos. Por defecto solo la clave principal (si la tenemos) aparece indexada, para el resto de los campos es opcional. Las opciones de esta propiedad: Sí (Con duplicados): El campo se indexará pero permitiría tener valores repetidos (duplicados) en más de un registro. Sí (Sin duplicados): El campo se indexará pero no admitirá valores duplicados. No: El campo no se indexará. Para obtener una vista de todos los campos que tengamos indexados pulsar el menú Ver / Índices o el botón "Índices" de la Barra de herramientas. Todo esto parece ser demasiada información pero en la práctica normalmente no necesitamos configurar cada una de estas propiedades, muchas veces es suficiente dejar los valores por defecto. 28/04/2017

168 Tablas: Vista Diseño Ya se puede introducir todos los campos que desee en la tabla, y definir el tipo de datos que se van introducir en cada campo. 28/04/2017

169 Tablas: Vista Diseño Si estamos introduciendo una tabla nueva en Vista diseño, o al pasar de la vista de datos a vista diseño, Access pedirá que se le de un nombre a la tabla. A continuación aparecerá otro mensaje comunicando que no se ha creado una clave principal. Por el momento se pulsa No, ya que no se va a crear ahora, se verá más adelante en este manual. 28/04/2017

170 Tablas: Tipos de Datos Valor Tipo de datos Tamaño Texto Memo Numérico
Texto o combinaciones de texto y números, así como números que no requieran cálculos, como los números de teléfono. Es el predeterminado. Hasta 255 caracteres o la longitud que indique la propiedad Tamaño del campo. Memo Estos campos son particularmente adecuados para dotar a cada registro de la tabla de un lugar para escribir todo tipo de comentarios. No es necesario definir su longitud, ya que la misma se maneja de manera automática, extendiéndose a medida que se le agrega información. El texto allí colocado no dispone de ninguna posibilidad de formato, ni de carácter ni de párrafo. Hasta caracteres. Numérico Datos numéricos utilizados en cálculos matemáticos. 1, 2, 4 u 8 bytes (16 bytes si el valor de la propiedad Tamaño del campo es Id. de réplica). Fecha/Hora Valores de fecha y hora. 8 bytes. Moneda Valores de moneda y datos numéricos utilizados en cálculos matemáticos en los que estén implicados datos que contengan entre uno y cuatro decimales. La precisión es de hasta 15 dígitos a la izquierda del separador decimal y hasta 4 dígitos a la derecha del mismo. 28/04/2017

171 Tablas: Tipos de Datos Sí/No Objeto OLE Hipervínculo Autonumérico
Valores Sí y No, y campos que contengan uno de entre dos valores (Sí/No, Verdadero/Falso o Activado/desactivado). 1 bit. Objeto OLE Objeto (como por ejemplo una hoja de cálculo de Excel, un documento de Word, gráficos, sonidos u otros datos binarios) vinculado o incrustado en una tabla de Access. Hasta 1 gigabyte (limitado por el espacio disponible en disco) Hipervínculo Almacena una ruta UNC o una URL. Hasta caracteres. Autonumérico Número secuencial (incrementado de uno a uno) único, o número aleatorio que Microsoft Access asigna cada vez que se agrega un nuevo registro a una tabla. Los campos Autonumérico no se pueden actualizar. 4 bytes (16 bytes si el valor de la propiedad Tamaño del campo es Id. La réplica). Asistente para búsquedas Crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado. Tamaño igual al del campo clave principal utilizado para realizar la búsqueda. 28/04/2017

172 Tablas: Introducir datos en la tabla
En Vista Hoja de Datos se pueden introducir datos. En el primer registro sólo aparecerá una fila. Se hace clic sobre ella y se escriben los datos en los campos. En el momento en que se empiece a escribir se añadirá una fila más. En la primera columna de la fila sobre la que esté escribiendo aparecerá un lápiz, y en la siguiente un asterisco. Para pasar de un campo a otro pulse Intro o Tabulador. Cuando se quiere añadir otro registro sólo se tiene que pinchar sobre la fila con el asterisco. 28/04/2017

173 Tablas: Clave principal
La clave principal suele ser uno o varios de los campos de la tabla. El contenido de este campo identifica cada registro del campo de manera única. No se podrán introducir dos registros iguales o almacenar valores nulos en los campos de la clave principal. No es obligatorio que una tabla tenga clave principal, pero si es recomendable (sin clave no se pueden relacionar). Para la tabla “Clientes” se tiene que pensar que campo no se repite. Podría ser el campo “Nombre”, pero el nombre no es algo único. Los campos “Nombre” y “Apellidos” juntos también se podrían repetir en algún caso. Se podría usar el campo “DNI”, pero decidimos que queremos crear un código único para cada paciente. Se selecciona el campo “Nombre” y se inserta un campo. Se llama “Id_Paciente” y se elige el tipo de dato Autonumérico. Este tipo de dato hace que Access genere un número único a cada registro de la tabla. De esta forma es totalmente seguro que el campo no tendrá ningún registro repetido. 28/04/2017

174 Tablas: Clave principal
Es decir los datos de un paciente no aparecerán repartidos en tres veces, sino en una sola vez, de forma que cuando se quiera consultar el estado físico de un paciente se tendrá la seguridad de que ahí están todos sus datos médicos. Para establecer este campo como clave principal se hace clic sobre él y en la barra de Herramientas se pulsa el botón Establecer Clave Principal. También se puede realizar esta operación desde el Menú Edición/Establecer Clave Principal. 28/04/2017

175 Tablas: Clave principal
No se tiene que definir obligatoriamente una clave principal, pero normalmente es conveniente hacerlo. Si no se establece la clave principal, al cerrar la tabla aparece un cuadro de diálogo pidiendo que se establezca: Si se elige la opción "Si", Access creará automáticamente un campo Autonumérico que será la clave principal. 28/04/2017

176 Tablas: Tipos clave principal
En Microsoft Access existen tres tipos de clave principal: Autonumérico, Campo simple y Campos múltiples. Claves principales de Autonumérico Un campo Autonumérico puede establecerse para que el programa introduzca automáticamente un número secuencial cuando se agrega un registro a la tabla. Designar un campo de este tipo como clave principal de una tabla es la forma más sencilla de crear una clave principal. Cuando no se establece una clave principal antes de guardar una tabla recién creada, Microsoft Access pregunta si se desea que cree una clave principal automáticamente. Si se contesta afirmativamente, Microsoft Access creará una clave principal de Autonumérico. 28/04/2017

177 Tablas: Tipos clave principal
Claves principales de Campo simple: Si se tiene un campo que contiene valores exclusivos, como números de identificación o números de pieza, se puede designar ese campo como la clave principal. Si el campo seleccionado como clave principal tiene valores duplicados o Nulos, Microsoft Access no establece la clave principal. Claves principales de Campos múltiples: En situaciones en las que no se puede garantizar la exclusividad de un solo campo, se pueden designar dos o más campos como clave principal. La situación más común en la que surge este problema es en la tabla utilizada para relacionar otras dos tablas en una relación varios a varios. Si no se está seguro de poder seleccionar una combinación de campos apropiada para una clave principal de campos múltiples, probablemente resultará más conveniente agregar un campo Autonumérico y designarlo como la clave principal en su lugar. 28/04/2017

178 Tablas Reglas de Validación

179 Tablas: Reglas de validación:
Esta propiedad nos permite controlar la entrada de datos según el criterio que se especifique. Hay que escribir el criterio que debe cumplir el valor introducido en el campo para que sea introducido correctamente. Por ejemplo si queremos que un valor introducido esté comprendido entre 100 y 2000, se puede especificar en esta propiedad >=100 Y <=2000. Para formar la condición puedes utilizar el generador de expresiones como te explicamos en la secuencia animada. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE, y el Autonumérico. 28/04/2017

180 Tablas: Reglas de validación:
EJEMPLO: Abrimos la base de datos “Empresa”. Hacemos clic sobre la tabla “Pedidos”/Diseño. 28/04/2017

181 Tablas: Reglas de validación:
Señalamos el campo “Fecha del pedido”. Nos situamos con el ratón en la propiedad de reglas de validación, y hacemos clic en el botón para abrir el generador de expresiones. 28/04/2017

182 Tablas: Reglas de validación:
Nos situamos con el ratón en la propiedad de reglas de validación, y hacemos clic en el botón para abrir el generador de expresiones. Vamos a validar el campo comprobando que la fecha de pedido es inferior a la fecha de hoy haciendo primero clic en el signo “<“. 28/04/2017

183 Tablas: Reglas de validación:
Luego buscaremos una función que devuelva la fecha de hoy. Para ello hacemos doble clic en Funciones/Funciones incorporadas/Fecha/Hora/Fecha. 28/04/2017

184 Tablas: Reglas de validación:
Para agregar la regla de validación hacemos clic en Pegar. Ahora tenemos nuestra regla de validación completa. Finalmente hacemos clic en Aceptar. 28/04/2017

185 Tablas: Reglas de validación:
El resultado es el siguiente: 28/04/2017

186 Tablas: Texto de validación:
Access también ofrece la posibilidad de introducir un texto de validación. Esta propiedad permite que si en el campo se intenta introducir un valor que no cumpla la regla de validación, aparecerá un mensaje de error con el texto de validación que hayamos escrito. 28/04/2017

187 Tablas: Campo requerido:
Si queremos que un campo se rellene obligatoriamente tendremos que asignar a esta propiedad el valor Sí, en caso contrario el valor será el de No. Se puede utilizar esta propiedad para todos los tipos de datos excepto el Objeto OLE y el Autonumérico. Ahora vamos a hacer que sea obligatoria la entrada de datos en el campo del ejemplo (Fecha_Pedidos). Para ello, hacemos clic en “Requerido” y seleccionamos “Sí”. 28/04/2017

188 Creación de Relaciones entre Tablas
(Modelo de Datos)

189 Tablas: Relaciones Diferencia de una base de datos relacional:
La diferencia de las bases de datos relacionales con respecto a una base de datos plana consiste en que los datos sólo se introducen una sola vez en una tabla, pero gracias a las relaciones pueden aparecer en las tablas que se quiera. Cualquier modificación sólo hay que realizarla una sola vez y automáticamente se realizará en todas las demás tablas. De este modo se ahorra mucho tiempo, espacio y exactitud en los datos que siempre estarán actualizados independientemente de la tabla en la que estemos. 28/04/2017

190 Tablas: Relaciones Tipos de relaciones:
Existen tres tipos de relaciones, que se explican a continuación. Más adelante se verá cómo quedan guardadas relaciones de este tipo en Access. Relación uno a uno: Cada registro de la tabla A se relaciona sólo con un registro de una tabla B y cada registro de la tabla B se relaciona sólo con un registro de la tabla A. Relaciones de este tipo se almacenan guardando en la tabla el identificador de la otra tabla con la que mantiene la relación. En la base de datos del hospital, un registro de la tabla de pacientes sólo se relaciona con un registro de la tabla médicos. 28/04/2017

191 Tablas: Relaciones Relación uno a varios:
Cada registro de la tabla A está relacionado con varios registros de la tabla B y cada registro de la tabla B está relacionado con un sólo un registro de la tabla A. Aplicando esto a nuestro ejemplo, una relación de este tipo se daría entre la tabla pacientes y la tabla médicos, ya que el mismo médico se hará cargo de varios pacientes. Un solo registro de la tabla de médicos se relaciona con varios registros de la tabla de pacientes. 28/04/2017

192 Tablas: Relaciones Relación varios a varios:
Cada registro de la tabla A puede estar relacionado con más de un registro de la tabla B y cada registro de la tabla B puede estar relacionado con más de un registro de la tabla A. En la base de datos del hospital tenemos dos tablas: médicos y pacientes, con una relación directa entre ellos, un médico podría atender a muchos pacientes y un mismo paciente podría ser atendido por varios médicos. Varios registros de la tabla de médicos se relacionaría con varios registros de la tabla de pacientes. Relaciones de este tipo se almacenan creando una tabla especial donde se colocan los identificadores de cada tabla y otros campos que puedan ser de utilidad, por ejemplo la fecha, la hora, comentarios acerca de la visita médica, etc. En la tabla Visitas, donde aparecen tanto el código del médico como el del paciente. 28/04/2017

193 Tablas: Relaciones Ejemplo de relación varios a varios:
Tenemos la tabla “Pedidos" que contiene campos "Producto" y "Cliente" y mantiene la relación de uno a varios con las tablas "Productos" y "Clientes" que a su vez mantienen la relación de varios a varios entre sí. 28/04/2017

194 Tablas: Relaciones Crear relaciones ente dos tablas:
Para crear una relación entre las tablas de una base de datos primero es necesario cerrar todas las tablas. Con las tablas abiertas no se puede crear o modificar una relación. Para poder utilizar la integridad referencial será necesario que las tablas no tengan ningún registro. Desde la ventana Base de datos, se pulsa el botón   o se selecciona el menú Herramientas/Relaciones. Automáticamente se abrirá la ventana Relaciones totalmente vacía. 28/04/2017

195 Tablas: Relaciones Para añadir las tablas que van a estar relacionadas se pulsa el botón Mostrar tabla o se selecciona el menú Relaciones/Mostrar Tabla. Aparecerá una ventana con el listado de las tablas: 28/04/2017

196 Tablas: Relaciones Se seleccionan aquellas tablas que van a formar parte de una relación y se pulsa Agregar. Después de pulsar Agregar en la ventana Relaciones aparecerá la tabla en un recuadro con todos los campos. Cuando ya no se quieran agregar mas tablas se pulsa el botón Cerrar. Quedará abierta únicamente la ventana Relaciones. 28/04/2017

197 Tablas: Relaciones En este caso se van a incluir las tres tablas de nuestro ejemplo: Médicos, Pacientes y Visitas. Para crear las relaciones entre estas tres tablas se relacionará primero médicos con visitas y luego pacientes con visitas. 28/04/2017

198 Tablas: Relaciones Para relacionar médicos con visitas el campo en común es el código del doctor. Este dato está almacenado en la tabla médicos, por tanto, el campo se arrastrará desde médicos hasta Visitas. Para arrastrar el campo primero se selecciona, se hace clic, y sin soltar el botón del ratón se arrastra hasta situar el cursor sobre el campo Código del doctor de la tabla Visitas. Al arrastrar el campo el cursor se convertirá en un rectángulo pequeño. Tras arrastrar el campo se abrirá esta ventana: 28/04/2017

199 Tablas: Relaciones Dentro de la ventana hay dos columnas en las dos debe estar un campo con un contenido similar. No importa la coincidencia del nombre sino del contenido. Médicos es la tabla primaria en esta relación (es la que contiene los datos) y Visitas es la tabla secundaria (tomará los datos de médicos a través del campo común). Si se pulsa el botón Tipo de combinación, se abrirá una ventana explicando los tres tipos de combinaciones. Automáticamente aparece seleccionada la primera combinación. En este ejemplo se puede dejar así. 28/04/2017

200 Tablas: Relaciones Integridad referencial:
La integridad referencial es un conjunto de reglas de Access que garantizan que las relaciones entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican accidentalmente datos relacionados que satisfacen dicha relación. Sirve para aumentar la seguridad en el tratamiento de los datos que coexisten entre dos tablas relacionadas. 28/04/2017

201 Tablas: Relaciones Exigir integridad referencial:
La integridad referencial son unas normas que mantienen la coherencia de datos entre dos tablas relacionadas. Estas normas son: No puede haber registros en la tabla secundaria que no estén en la primaria. No se puede borrar un registro de la tabla principal si hay registros en la secundaria. Para poder exigir integridad referencial en una relación de uno a varios es necesario que : El campo relacionado de la tabla principal sea la clave principal. Los campos contengan el mismo tipo de datos a excepción de que la relación se establezca entre un campo de tipo Autonumérico y un campo de tipo Numérico, siempre y cuando este último sea un Entero largo (por lo tanto los dos campos con la misma longitud: entero largo). No se pueden relacionar un campo de texto con uno de fecha, o uno numérico con uno de texto. Ambas tablas deben pertenecer a la misma base de datos. 28/04/2017

202 Tablas: Relaciones Cuando se establece la integridad referencial (marcando la casilla pertinente en el panel de modificar relaciones) se van a cumplir obligatoriamente, las siguientes reglas: No podemos introducir un valor para ese campo en la tabla relacionada si antes no ha sido introducido en la tabla principal. Ejemplos: No podemos tener en la tabla de pedidos un pedido realizado por un código de cliente que no exista. No podemos tener o anotar en la tabla de participantes un participante con un número de socio que no exista en la tabla relacionada de socios (habría que dar de alta al participante previamente en la tabla socios. Una buena opción sería colocar en el formulario de inscripciones un botón de comando que nos lleve y abra el formulario de socios para poderle dar de alta. Al cerrar el formulario de socios una vez dado de alta, regresaríamos al formulario de inscripciones y como ese nuevo socio ya existe en la tabla de socios, nos permitiría su entrada). No podremos introducir tampoco a un empleado un código de entidad bancaria si no se ha introducido esa entidad previamente en la tabla entidades. No se puede asignar a un trabajador un código de categoría si esa categoría no está dada de alta en la tabla categorías. No se puede añadir un pedido en una tabla de pedidos de un artículo si el artículo no existe previamente en la tabla de artículos. 28/04/2017

203 Tablas: Relaciones No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. Ejemplos: No podemos eliminar un cliente que está en la tabla de pedidos, es decir está realizando un pedido. No podemos eliminar un socio que está en la tabla de participaciones. No podremos eliminar una entidad bancaria mientras existe un empleado que domicilie su nómina por ella, no podremos eliminar una categoría profesional de la empresa mientras algún empleado la tenga asignada. No se podría borrar un artículo mientras existen pedidos de ese artículo en la tabla de pedidos. No se podría dar de baja un vehículo (de una base de datos de un ayuntamiento) mientras en la tabla relacionada multas existan multas sobre ese vehículo. No se puede cambiar un valor de clave principal en la tabla principal si el registro tiene registros relacionados. No podríamos cambiar el número de cliente en la tabla de clientes si este cliente en este momento esta realizando un pedido, es decir está en la tabla pedidos. No podríamos cambiar el número de socio en la tabla de socios si este socio en este momento esta participando en un torneo, es decir está en la tabla participaciones. 28/04/2017

204 Tablas: Relaciones Si se quiere exigir el cumplimiento de estas reglas, hay que seleccionar la casilla de verificación Exigir integridad referencial al crear la relación. Muy Importante: Esta opción es muy arriesgada ya que en Access una vez que se elimina un registro ya no se puede volver a recuperar. Es fundamental llevar una buena política de copias de seguridad. 28/04/2017

205 Tablas: Relaciones Access verificará que los campos cumplen todas las condiciones para que haya integridad referencial. Si no se cumplen todas las condiciones no permitirá que esa relación tenga integridad referencial. Quedan activadas las dos acciones siguientes: Actualizar en cascada los campos relacionados: se está indicando que si se modifica el valor de un campo desde un lado de la relación automáticamente se actualicen en todos los registros relacionados. Eliminar en cascada los registros relacionados: si se borra un registro de un lado de la relación se borrarán automáticamente todos los registros que estaban relacionados con él. 28/04/2017

206 Tablas: Relaciones Al establecer la integridad referencial en la figura siguiente se observa que la relación es uno (1) a varios (∞), un cliente (cuyos datos se encuentran en la tabla Clientes) puede haber realizado varios pedidos (los datos de éstos se encuentran en la tabla Pedidos). 28/04/2017

207 Tablas: Relaciones Cuando ya se han especificado las características de la relación se pulsa el botón Crear. Entre las dos tablas relacionadas aparecerá una línea. Esta línea simboliza la relación entre las dos tablas. Si la relación cumple la integridad referencial la línea será más gruesa. En nuestro ejemplo del hospital: 28/04/2017

208 Tablas: Relaciones A continuación se creará la relación entre Pacientes y Visitas. Y se exigirá integridad referencial en las dos relaciones. Para exigir la integridad referencial se hace doble clic sobre la línea de relación, se volverá abrir la ventana de la relación. 28/04/2017

209 Tablas: Relaciones Una vez se ha terminado de crear las relaciones entre las tablas se guardan. Para guardar se selecciona el botón guardar o el menú Archivo/Guardar. Después de guardar ya se puede cerrar la ventana de relaciones. Si se cierra antes de guardar, se abrirá un mensaje de aviso. Access permite guardar las relaciones en la Base de Datos. Esto será muy importante para que siempre que se lleven a cabo modificaciones en los datos se tenga en cuenta que las relaciones están presentes entre los mismos y no se puedan infringir las reglas de consistencia vigentes. 28/04/2017

210 Tablas: Relaciones Modificar y eliminar relaciones:
Ambas operaciones se realizan desde la Ventana de relaciones, como ya se ha comentado anteriormente. Para modificar una relación los pasos a seguir son: Hacer clic sobre la línea de la relación que se quiere modificar, ésta se visualizará con un trazo más grueso, indicando que está seleccionada. Seleccionar la opción Modificar relación del menú Relaciones. Se muestra el mismo cuadro de diálogo que aparecía al crear la relación. Realizar las modificaciones necesarias. Hacer clic sobre el botón Aceptar. Para eliminar una relación, basta con seleccionar la relación que se quiere eliminar y pulsar a continuación la tecla Supr (o seleccionar la opción Eliminar del menú Edición). 28/04/2017

211 ¿Cómo programar un Botón para agregar registros a una base de datos?
Ejemplo en vb.net ¿Cómo programar un Botón para agregar registros a una base de datos?

212 Modelo de Datos

213 Modelo de Datos

214 Modelo de Datos

215 Creamos una base de datos llamada Ejemplo_censo con una tabla llamada «personas_censadas». (Vista hoja de datos)

216 Vamos a Visual Studio 2012, elegimos el lenguaje de programación Visual Basic y Creamos la interfaz de nuestro formulario inicial.

217 Creamos un nuevo formulario llamado frmNuevoRegistro en la pestaña Proyecto  agregar windows forms…
En esta pantalla colocamos un nombre al formulario y luego hacemos click en Agregar.

218 Diseñamos la interfaz del formulario…
Inicialmente colocamos los campos y el botón Guardar con la propiedad Enabled = False para que estén desactivados… Haremos que se activen solo al hacer click en el Botón Nuevo.

219 Escribimos este código en el botón NUEVO:

220 Ahora, vamos a hacer que los registros vayan a nuestra base de datos… En primer lugar, importamos el espacio de nombres system.data.oledb que es el proveedor de datos de .net framework para ole db y describe una colección de clases que se utiliza para obtener acceso a un origen de datos ole db en el espacio administrado. ( Hacemos doble click en el formulario frmNuevoRegistro y colocamos la siguiente línea antes de Public class…

221 Enlazamos la base de datos a nuestro proyecto tal como se explicó aquí, en Orígenes de datos  Agregar nuevo origen de datos.

222 Declaramos dos variables: una llamada conexión de tipo OleDbConnection y una llamada comandos de tipo OleDbCommand. OleDbConnection: Representa una conexión abierta a un origen de datos. OleDbCommand: Representa una instrucción SQL o un procedimiento almacenado que se va a ejecutar en un origen de datos.

223 Vamos a programar el Evento Load del formulario, es decir, el procedimiento que se ejecutará al cargar el formulario: ¿Dé donde obtenemos esta cadena de conexión que se utiliza para abrir la Base de datos?

224 (1) Vamos a Orígenes de datos y hacemos Click en el botón Nuevo origen de datos (2) (3)

225 En esta ventana, hacemos click en el botón +
(4) En esta ventana, hacemos click en el botón + (5) copiamos la cadena de conexión que se muestra en el recuadro y luego podemos hacer click en Cancelar.

226 Programamos el botón Guardar:
Continúa…

227 botón Guardar: Continuación…

228 Finalmente, programamos el botón Volver.
Listo… Probemos a ver cómo funciona…

229 Vamos a verificar los registros que están almacenados en la base de datos antes de probar el programa creado… Ahora iniciamos la ejecución…

230 Aparece el formulario inicial que muestra las opciones disponibles… Hacemos click en el botón Nuevo Registro. Si funciona correctamente, deberá aparecernos este mensaje en pantalla que indica que nos hemos conectado a la base de datos, tal como lo indicamos al programar el evento Load del formulario.

231 A continuación, se muestra el formulario Nuevo Registro
A continuación, se muestra el formulario Nuevo Registro. Los campos y el botón Guardar están inicialmente desactivados… Hacemos Click en el botón Nuevo.

232 Como vemos acá, el botón nuevo queda activado al igual que los campos para permitir la escritura… Al completar la información correspondiente al registro que estamos llenando, hacemos click en el botón Guardar.

233 Al presionar el botón Guardar, si todo funciona correctamente, aparecerá un mensaje en pantalla indicando que el registro ha sido guardado tal como indicamos anteriormente. Hacemos click en Aceptar… Una vez guardado el registro de forma satisfactoria, se vuelven a desactivar los campos y el botón guardar.

234 Vamos a verificar si realmente se ha guardado el registro que acabamos de añadir…
ACÁ ESTÁ… ¡HA FUNCIONADO! 

235 Ejemplo en vb.net ¿Cómo programar un Botón para Actualizar registros a una base de datos?

236 Nota: El ejemplo está hecho con Visual Studio 2012 y Access 2010.

237 Diseñamos la interfaz del formulario frmActualizar…
Colocamos todos los campos (excepto txtCedula) y los botones Modificar y Actualizar con la propiedad enabled = False.

238 Declaramos las variables que vamos a necesitar.

239 Programamos el evento Load del formulario para que se abra la conexión al cargar.
Podemos obtener esta cadena de conexión desde orígenes de datos.

240 Programamos el botón Buscar para cargar la información del registro en los campos del formulario.

241 Se programa el botón Modificar para que active los campos permitiendo la escritura.

242 Programamos el botón Actualizar:
Continúa…

243 La consulta completa para actualizar queda así:
consulta_actualizar = "UPDATE personas_censadas SET cedula = " & txtCedula.Text & ", nombre = '" & txtNombre.Text & "', apellido = '" & txtApellido.Text & "', sexo = '" & ListSexo.Text & "', telefono = '" & txtTelefono.Text & "', correo = '" & txtCorreo.Text & "', nivel_instruccion = '" & ComboNivelInstruccion.Text & "' WHERE cedula = " & txtCedula.Text & " "

244 botón Actualizar (Continuación…):

245 Finalmente, programamos el botón Volver.
Vamos a ver cómo funciona…

246 Vamos a ver los registros que tenemos en nuestra base de datos…
Digamos que queremos actualizar el registro con la cédula … Iniciamos la ejecución del proyecto.

247 Aparece el formulario inicial que muestra las opciones disponibles… Hacemos click en el botón Actualizar registro. Si funciona correctamente, deberá aparecernos este mensaje en pantalla indicando que la conexión a la base de datos ha sido exitosa, tal como lo indicamos en el evento Load del formulario.

248 Al aparecer el formulario Actualizar, ingresamos la cédula en el campo correspondiente y hacemos click en el botón BUSCAR.

249 si existe un registro que cumpla con el criterio de selección, se cargará la información del mismo en los campos del formulario y se activarán los botones Modificar y Actualizar.

250 Hacemos click en el botón Modificar para que se activen los campos del formulario y se permita así la modificación de los campos correspondientes al registro encontrado.

251 Hacemos las modificaciones necesarias y presionamos el botón Actualizar.
Si todo está bien, aparecerá un mensaje en pantalla informando que el registro ha sido actualizado.

252 Una vez actualizado el registro, se desactivan nuevamente los campos y los botones Modificar y Actualizar.

253 Verificamos en la base de datos…
El registro se actualizó correctamente…

254 ¿Cómo programar un Botón para ELIMINAR registros a una base de datos?
Ejemplo en vb.net ¿Cómo programar un Botón para ELIMINAR registros a una base de datos?

255 Declaramos las variables que vamos a necesitar.

256 Diseñamos la interfaz del formulario frmEliminar…
Colocamos todos los campos (excepto txtCedula) y el botón eliminar con la propiedad enabled = False.

257 Programamos el evento Load del formulario para que se abra la conexión al cargar.

258 Se programa el botón Buscar para cargar la información del registro en los campos del formulario y activar el botón Eliminar.

259 Programamos el botón Eliminar para que el usuario confirme que desea borrar el registro encontrado y a continuación ejecutar la consulta Delete correspondiente.

260 Finalmente, se programa el botón Volver para cerrar la conexión y regresar al formulario anterior.

261 Vamos a ver los registros que tenemos en nuestra base de datos…
Supongamos que queremos eliminar el registro con la cédula … Iniciamos la ejecución del proyecto.

262 Aparece el formulario inicial que muestra las opciones disponibles… Hacemos click en el botón Eliminar registro. Si funciona correctamente, deberá aparecerá un mensaje en pantalla indicando que la conexión a la base de datos ha sido exitosa, como lo indicamos en el evento Load del formulario.

263 Al aparecer el formulario Eliminar, ingresamos la cédula en el campo correspondiente y hacemos click en el botón BUSCAR.

264 Presionamos el botón Buscar y, si el registro existe en la base de datos, se muestra en los campos del formulario y se activa el botón Eliminar.

265 Presionamos el botón Eliminar Y se nos pide confirmar que deseamos borrar el registro.
Presionamos Si y se muestra un mensaje en pantalla informando que el registro ha sido eliminado.


Descargar ppt "Bases de Datos Relacionales"

Presentaciones similares


Anuncios Google