Está en la página 1de 306

2017

Bases de Datos
Relacionales

www.licrgarcia.webnode.com.ar

1
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.
 Desarrollar un sistema simple con el lenguaje Visual
Basic .NET y el DBMS Access.
 Generar la carpeta de la asignatura (OBLIGATORIA) de
acuerdo a la investigación de los temas tratados en las
clases expositivas.

2
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

3
UNIDAD I
Introducción a las BD

Clase expositiva 1 y 2
4
1. Introducción
¿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

5
1. Aplicaciones con manejo de datos independiente

Cada aplicación recurre a archivos separados.

2. Gestión centralizada

Datos centralizados y compartidos por todas las


aplicaciones
Aplicaciones con Manejo de Datos Independiente
Archivo de cuentas corrientes Aplicación 1
Num. Cliente nombre cliente DatosCuentaCorriente
2056 juan pérez ........ ........ ....... .......

Archivo de Ahorros
Num. Cliente nombre cliente Datos de Ahorros redundancia
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.
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.
8
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

Aplicación 3
Archivo de Datos de
Cuentas cuentas Archivo de Datos de
préstamos
corrientes Préstamos
Corrientes

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. 9
… Datos Independientes

Dpto. Personal Dpto. Contabilidad


Dpto. Ventas
Clientes Ventas Cuentas
Empleados
Inventario

… Centralizado
Personal
BASE DE DATOS

Empleados
Ventas SGBD Clientes
Ventas
Inventario
Contabilidad Cuentas
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

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

 Dependencia de ligas externas • Independencia a ligas externas


a los datos a los datos
 Datos sin compartir en toda la • Datos compartidos y
empresa compatibles en la empresa
 Redundancia de los datos • Redundancia mínima y
 Archivos no relacionados controlada
entre sí • Datos relacionados de acuerdo
 Acceso limitado y con poca a un modelo
flexibilidad, eficiencia y • Flexibilidad, Integridad,
seguridad Eficiencia y seguridad

13
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

14
¿ 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.

15
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
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

17
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

18
UNIDAD II
Ambiente Tecnológico

Clase expositiva 3 y 4
19
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

20
Esquema General de Uso de una Base de Datos

Internet
s
l ta ddoos
su lta
Reesu
R

ASP
s
ltadoos BASE PHP
RReessuultad JAVA
DATOS .NET
Applicación
Applicación
Cliente SQL
SQL

VisualBasic SQL Server


PowerBuilder ORACLE
VisualFox INFORMIX
Delphi DB2
Modelo Datos

21
Diversos Modelos de una BD
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

22
Entorno de operación

23
EXTRANET / INTRANET: El
entorno actual

Interacción actual entre el WWW y la BD

24
Niveles de Instrumentación

25
Niveles de Instrumentación (2)

26
Arquitectura de una
(Niveles de abstracción)
BD
NIVEL Es conocido como el nivel de vistas de usuario.
EXTERNO 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 A este nivel se tiene el esquema de la base


CONCEPTUAL 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 tiene un esquema interno o físico.


FISICO Describe como se almacenan realmente los datos y los caminos
de acceso a la base de datos.
Arquitectura de una BD
La BD presenta una arquitectura de tres niveles:
Usuarios finales
NIVEL
EXTERNO Vista
Externa 1
Vista
Externa 2 ... Vista
Externa n

Correspondencia
externa/conceptual
NIVEL
ESQUEMA CONCEPTUAL
CONCEPTUAL
Correspondencia
conceptual/ interna
detalle

NIVEL ESQUEMA INTERNO


INTERNO

BD ALMACENADA

Correspondencia : proceso de transformar pedidos y respuestas de un nivel a otro


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
Vista de los Componentes de un SGBD
Usuarios Programadores Usuarios Administrador de
Usuarios
normales de aplicaciones sofisticados Base de Datos

Interfaces de Programas de Esquema de


Consulta
aplicaciones aplicacion base de datos

Precompilador compilador Interprete


del DML del DML del DDL
Procesador Sistema
de
Código objeto Consultas
de gestión
de las Motor de evaluación de de base de
aplicaciones consultas datos

Gestor de Gestor de memoria intermedia


transacciones Gestor de
almacenamiento
Gestor de archivos

Archivos de datos estadística

indices Diccionario de datos


¿Cómo Diseño la Base de Datos ?

Interacción con el sistema

Usuarios Sistema

BASE
Requerimientos DATOS
Etapas para el Diseño de una Base de Datos

Requerimientos de Información

(I)
(I)
DISEÑO
DISEÑO CONCEPTUAL
CONCEPTUAL

(II)
(II)
DISEÑO
DISEÑO LOGICO
LOGICO

(III)
(III)
DISEÑO
DISEÑO FISICO
FISICO DE
DE LA
LA BASE
BASE DE
DE DATOS
DATOS

BASE
DATOS
Etapas para el Diseño de una Base de Datos
Requerimientos
Requerimientos de
de Información
Información Usuarios
y Clientes
DISEÑO
DISEÑO CONCEPTUAL
CONCEPTUAL
Cliente Producto Documentos

DISEÑO
DISEÑO LOGICO
LOGICO
RED RELACIONAL OO

DISEÑO
DISEÑO FISICO
FISICO DE
DE LA
LA BASE
BASE DE
DE DATOS
DATOS
ORACLE SQL Server ACCESS DB2 MYSQL INFORMIX
Guía de Lectura 2
www.licrgarcia.webode.com.ar

 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

34
UNIDAD III
Parte 1
Introducción al Modelo Relacional

Clase expositiva 5,6, 7 y 8


35
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

36
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
Nivel Implementación

2. Modelo de Redes Generación


3. Modelo Entidad Relación SGBD de Segunda
4. Modelo Relacional
Generación

Alto Nivel
5. Modelo de Objetos
6. Modelo Objeto-Relacional SGBD de Tercera
Generación
BD. DISTRIBUIDAS, ACTIVAS,
ESPACIALES
37
ORIENTADAS A OBJETOS, ...
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 del Modelo de Datos { G, O, R }
G Reglas de Generación de objetos
0 Operaciones,
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.

38
Modelado

39
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.
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.
40
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

41
Ejemplos del Modelo
Entidades: archivos existentes (esquema)
entidad: Edades
entidad: Direcciones Nombre x Edad x Estado Civil
Nombre x Dirección x Teléfono
Nombre Edad Estado Civil
Nombre Dirección Teléfono Pedro 34 casado
Pedro Pino 67 229-3456 Martín 45 soltero
Martín Encino 40 456-8907 Gonzalo 23 soltero
Gonzalo Suace 34 345-6789 Teresa 23 casada

Vistas: relación temporal entre archivos (subesquema)


Relación entre entidades

Nombre Edad Dirección Teléfono


Pedro 34 Pino 67 229-3456
Martín 45 Encino 40 456-8907

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
42
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,
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).
43
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.

44
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
45
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.
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
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.
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: esaquella que solo tiene sentido gracias a las


propiedades que identifican a otras entidades (fuertes o a su
vez débiles).
Atributos
 Es una característica o propiedad de una entidad.
 Se identifica con un nombre y todos los posibles valores
que puede tener.
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.
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”.
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”
Claves Foráneas

 Esuna referencia a una clave de otra tabla( siempre


que tengan el mismo tipo de dato). Determina la
relación existente entre dos tablas.
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.
Operaciones Básicas

Unarias: Selección y Proyección

Binarias: Unión, Diferencia y Producto Cartesiano


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, …))
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.
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.
Guía de Lectura
 Capitulo 2 Modelo Entidad RELACIÓN (BD silberschatz.pdf)
 Capitulo 3 Modelo Relacional (BD silberschatz.pdf)

60
UNIDAD III
Parte 2
Modelo Relacional

Clase expositiva 9, 10, 11, 12, 13 y 14


61
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“.
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
Primera Forma Normal (1FN)
Nombre Antig Direcciones Ciudad Producto
No esta normalizada
reg 1 TASA 25 a–os Reforma 23 Puebla clavos ya que no existen
tornillos relaciones atómicas
tuercas
tachuelas
entre los dominios.
reg 2 MESA 15 a–os Juarez 15 Cholula tuercas Anomalía
tachuelas
reg 3 GISA 20 a–os Sur 322 Puebla clavos ¿De qué tamaño es
tornillos un registro?
tuercas

Entidad en 1FN Nombre Antig Direcciones Ciudad Producto Cant

tupla 1 TASA 25 a–os Reforma 23 Puebla clavos 400


tupla 2 TASA 25 a–os Reforma 23 Puebla tornillos 200
En el producto tupla 3 TASA 25 a–os Reforma 23 Puebla tuercas 100
cartesiano todos los tupla 4 TASA 25 a–os Reforma 23 Puebla tachuelas 50
tupla 5 MESA 15 a–os Juarez 15 Cholula tuercas 30
dominios tienen tupla 6 MESA 15 a–os Juarez 15 Cholula tachuelas 20
valores atómicos tupla 7 TASA 20 a–os Sur 322 Puebla clavos 20
tupla 8 GISA 20 a–os Sur 322 Puebla tornillos 50
tupla 9 GISA 20 a–os Sur 322 Puebla tuercas 40
64
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.
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.
Segunda Forma Normal (2FN)
Sin embargo la 1FN tiene problemas cuando los atributos tienen
dependencia de varias llaves o dominios independiente.
Nombre Antig Direcciones Ciudad Producto Cant
Anomalía
tupla 1
tupla 2
TASA
TASA
25 a–os
25 a–os
Reforma 23
Reforma 23
Puebla
Puebla
clavos
tornillos
400
200
¿Qué pasa cuando dejo de
tupla 3
tupla 4
TASA
TASA
25 a–os
25 a–os
Reforma 23
Reforma 23
Puebla
Puebla
tuercas
tachuelas
100
50
comprarle a TASA ?
tupla 5 MESA 15 a–os Juarez 15 Cholula tuercas 30
tupla 6 MESA 15 a–os Juarez 15 Cholula tachuelas 20
tupla 7 TASA 20 a–os Sur 322 Puebla clavos 20
tupla 8 GISA 20 a–os Sur 322 Puebla tornillos 50
tupla 9 GISA 20 a–os Sur 322 Puebla tuercas 40

Ent 1 Nombre Antig Direcciones Ciudad

Entidades en 2FN tupla 1 TASA 25 a–os Reforma 23 Puebla


tupla 2 MESA 15 a–os Juarez 15 Cholula
tupla 3 GISA 20 a–os Sur 322 Puebla
Las entidades están en 1FN y
además cada dominio o atributo Ent 2 Nombre Producto Cant
depende de un sola llave:
tupla 1 TASA clavos 400
tupla 2 TASA tornillos 200
Ent 1 Nombre tupla 3 TASA tuercas 100
tupla 4 TASA tachuelas 50
==> Ant, Dir,Cd tupla 5 MESA tuercas 30
Ent 2 Nombre, Producto tupla 6 MESA tachuelas 20
tupla 7 TASA clavos 20
==> Cant tupla 8 GISA tornillos 50
tupla 9 GISA tuercas 40 67
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.
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
Ent 1 Nombre Antig Direcciones Ciudad ¿Qué pasa cuando TASA
tupla 1 TASA 25 a–os Reforma 23 Puebla de ser mi proveedor?
tupla 2 MESA 15 a–os Juarez 15 Cholula
tupla 3 GISA 20 a–os Sur 322 Puebla

Entidades en 3FN
Ent 1 Nombre Antig Direcciones

Las entidades están en 2FN y tupla 1 TASA 25 a–os Reforma 23


tupla 2 MESA 15 a–os Juarez 15
además cada dominio o atributo tupla 3 GISA 20 a–os Sur 322
depende NO transitivamente de
un sola llave:

Ent 1 Nombre Ent 3 Direcciones Ciudad


==> Ant, Direcciones tupla 1 Reforma 23 Puebla
Ent 3 Direcciones tupla 2 Juarez 15 Cholula
tupla 3 Sur 322 Puebla
==> Ciudad 69
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.
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
Tercera Forma Normal
(Dependencia Funcional Transitiva)

E S E
F T F
A G A G
H H
I I
J J
K K

E S

F T
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”.
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
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.
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.
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”.
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
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.
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.
Normalización: Redundancia controlada
La normalización genera más entidades, sin
embargo esta redundancia aparente esta
controlada por el manejador de BD, siendo Entidades normalizadas
ajena para el usuario.
Ent 1 Nombre Antig Direcciones
Por otro lado el tamaño de los archivos tiende a
reducirse. tupla 1 TASA 25 a–os Reforma 23
tupla 2 MESA 15 a–os Juarez 15
tupla 3 GISA 20 a–os Sur 322

Ent 2 Nombre Producto Cant

Entidad sin normalizar tupla 1


tupla 2
TASA
TASA
clavos
tornillos
400
200
tupla 3 TASA tuercas 100
Nombre Antig Direcciones Ciudad Producto tupla 4 TASA tachuelas 50
tupla 5 MESA tuercas 30
reg 1 TASA 25 a–os Reforma 23 Puebla clavos tupla 6 MESA tachuelas 20
tornillos
tuercas tupla 7 TASA clavos 20
tachuelas tupla 8 GISA tornillos 50
reg 2 MESA 15 a–os Juarez 15 Cholula tuercas tupla 9 GISA tuercas 40
tachuelas
reg 3 GISA 20 a–os Sur 322 Puebla clavos
tornillos
tuercas Ent 3 Direcciones Ciudad

tupla 1 Reforma 23 Puebla


tupla 2 Juarez 15 Cholula
tupla 3 Sur 322 Puebla
81
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.

82
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 ) 83
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

84
Modelo Entidad - Relación

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.

85
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)

86
Trabajo Práctico
Sistema del mercado de Frutas

87
Descripción de las reglas de negocio

Puestos M1 Puestos M2 Puestos M3


Datos del mercado Datos de un Almacen que distribuye Fruta
CODMER Codigo de mercado CODALM Código Almacen
NOMMER Nombre NOMALM Nombre
DIRMER Dirección CIFALM Código de Identificación Fiscal
CPOMER Código postal CODFRU Código de la fruta que distribuye
CIUMER Ciudad CMEFRU Código de medida de distribución
CPRMER Código de Provincia STKALM Stock de fruta en el almacen
PROMER Nombre de la Provincia PDIFRU Precio de distribución
TELMER Télefono Datos de la Factura de un Almacen a un puesto
Datos del puesto de un Mercado NUMFAC Número de factura
CODPTO Código de Puesto FECFAC Fecha
CIFPTO Código de Identificación Fiscal CODALM Codigo almecen
NOMPTO Nombre NOMALM Nombre Almacen
NPRPTO Nombre propietario CIFALM Código de Identificación Fiscal
Datos de fruta que vende un puesto CODMER Codigo de mercado
CODFRU Código NOMMER Nombre del mercado
NOMFRU Nombre DIRMER Dirección del mercado
CMEFRU Código medida CPOMER Código de Provincia del mercado
NMEFRU Nombre de la medida CIUMER Ciudad del mercado
STKPTO Stock en medidad en el puesto PROMER Provincia del mercado
PVEFRU Precio de venta CODPTO Código de Puesto
NOMPTO Nombre del Puesto
CIFPTO Código de Identificación Fiscal
NPRPTO Nombre del propietario del puesto
CODFRU Codigo de fruta
NOMFRU Nombre de la fruta
CMEFRU Código de medida de la fruta
NMEFRU Nombre de la medida
UMEFRU Unidedaes de medida vendida
PDIFRU Precio de distribución
PTOFRU Precio total de la fruta
BIMFRU Base impotible de la factura
PROIVA Porcentaje del Iva
IVAFAC Importe del IVA
TOTFAC Total de la factura
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
2FN - Dependencia Funcional Total

NOMMER
DIRMER
CIUMER
CodMer CPOMER
CPRMER
PROMER
TELMER
CIFPTO
NOMPTO
NPRPTO
CodPto
CodFru NOMFRU

CmeFru NMEFRU
STKPTO
PVEFRU
2FN - Dependencia Funcional Total

CodAlm

NumFac

CodFru
CmeFru
Diseño Global

97
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 98
BITACORAS:
QUE, QUIEN, COMO, DONDE y CUANDO

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
99
Normalización del Directorio
Ejemplo de las dependencias funcionales
de la bitácora de uso

100
Uso de la Bitácora

Ante estas
actualizaciones en las
Entidades TAM y ABC
la bitácora refleja la
siguiente actividad

101
Recuperación

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

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

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

105
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

106
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

107
Introducción a SQL
Basado en ORACLE
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

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

Cursa

1 M
1 M M 1
Alumnos Efectua Examenes Pertenece Materias

Pertenece

Departamentos
Definición de Tablas

Claves Primarias
Alumnos Exámenes Materias
Nlegajo Númerico 7 Nlegajo Númerico 7 CodMateria Númerico 3
CodCarrera Númerico 3 CodMateria Númerico 3 Nlegajo Númerico 7
Nombre Caracteres 25 FechaExamen Date NombreMater Caracteres 30
Apellido Caracteres 25 Nota Númerico 2,2 CodDepto Númerico 3
Domicilio Caracteres 25 CodCarrera Númerico 3
Localidad Caracteres 25
Cod. Postal Caracteres 10
Promedio Númerico 2,2
MaterAprob Númerico 2

Departamentos
CodDepto Númerico 3
Nombre Depto Caracteres 30
Definición de Tablas

Claves Secundarias
Alumnos Exámenes Materias
Nlegajo Númerico 7 Nlegajo Númerico 7 Nlegajo Númerico 7
CodCarrera Númerico 3 CodMateria Númerico 3 CodMateria Númerico 3
Nombre Caracteres 25 FechaExamen Date NombreMater Caracteres 30
Apellido Caracteres 25 Nota Númerico 2,2 CodDepto Númerico 3
Domicilio Caracteres 25 CodCarrera Númerico 3
Localidad Caracteres 25
Cod. Postal Caracteres 10
Promedio Númerico 2,2
MaterAprob Númerico 2

Departamentos
CodDepto Númerico 3
Nombre Depto Caracteres 30
Sintaxis SQL

Una sola tabla


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
Ejemplo consulta en SQL
Tabla ALUMNOS

NLEGAJO APELLIDO PROMEDIO Tabla MATERIAS


--- ------------ --------
NLEGAJO NOMBREMATER CODDEPTO
1 Velasquez 5 --- -------------- ---------
2 Perez 4 50 Sistemas I 1
3 Dominguez 3 50 Contabilidad II 2
... Tabla DEPARTAMENTOS
4 Gonzalez 10
50 Matematicas 3
... 50 Psicología 4 CODDEPTO NOMBREDEPTO
--- --------------
1 Informatica
2 Contable
3 Exactas
4 Sociales
5 Ciencias Empresarias
6 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;
INNER JOIN = Unión Interna (Todas las filas de una tabla que hace referencia a otra tabla
Consultas
 La consulta es una solicitud de información a la base de datos.
 Los datos mostrados pueden proceder de una sola tabla o de un conjunto
de tablas.
 El resultado de la consulta es la "Hoja de respuestas dinámica"; en esta
hoja se encuentra la información extraída de las tablas.
 Pero la información no se guarda en la hoja de respuestas, sino que sigue
estando almacenada en las tablas.
 En determinados tipos de consulta se puede modificar la información de
las tablas, pero la consulta sigue siendo una forma de acceder a la tabla, no
un objeto que almacene información.
 La consulta muestra lo que la tabla almacena según los criterios
solicitados.
 La consulta es un filtro avanzado, y funciona prácticamente de la misma
forma.
 Lo único que los diferencia es que los filtros sólo se pueden activar desde
una tabla o desde un formulario.

www.urjc.es 25/01/22 11
Consultas: Usos
 Elegir tablas:
◦ Las consultas se pueden realizar sobre una sola tabla o sobre todas las tablas creadas en esa
base de datos.
◦ De esta forma las combinaciones posibles para obtener información son muchas.
 Modificar los datos de las tablas:
◦ Aunque las consultas no son tablas, dan acceso a ellas, y permite modificar, eliminar o
añadir registros nuevos.
◦ También se puede utilizar una consulta para crear una nueva tabla que contenga registros
de otra tabla o de varias tablas.
 Elegir uno o varios campos:
◦ Al crear una consulta es posible especificar qué campo se desea ver.
 Seleccionar registros:
◦ Una consulta se puede concretar hasta el punto de ver sólo un registro.
 Realizar cálculos:
◦ Se pueden realizar cálculos con los campos mostrados en la consulta.
◦ Por ejemplo contar el número de registros seleccionados o acumular totales.
◦ Se crearán campos nuevos: campos calculados que contendrán el resultado del cálculo.
 Para crear nuevos formularios, informes o consultas:
◦ Partiendo de los datos obtenidos en una consulta se pueden crear nuevos elementos.

www.urjc.es 25/01/22 11
Consultas: Tipos
 Consulta de selección:
◦ Es la más sencilla, se indican unos criterios para ver sólo lo que interesa de una
tabla.
◦ Los datos aparecen en la Hoja de respuestas dinámicas, esta parece una tabla
pero no lo es, sólo muestra los datos de una tabla o de varias tablas según los
criterios de la consulta.
◦ Aunque la hoja de respuestas dinámica no es una tabla se pueden introducir
datos en las tablas a través de ella.
 Consulta de tablas de referencias cruzadas:
◦ Presenta los datos con títulos en las filas y en las columnas; la apariencia es la
de una hoja de cálculo.
◦ De esta forma se resume en muy poco espacio mucha información de una forma
muy clara.

www.urjc.es 25/01/22 12
Consultas: Tipos
 Consulta de acciones
◦ Es una forma de modificar registros de una o varias tablas a través de una sola
operación.
◦ A través de este tipo de consulta también se puede crear una nueva tabla,
eliminar o añadir registros, modificarlos, etc.
 Consulta de unión:
◦ Combina campos que coinciden en más de una tabla.
 Consulta de paso a través:
◦ Envía instrucciones a una base de datos SQL.
 Consulta de definición de datos:
◦ Se puede modificar una base de datos de Access utilizando instrucciones de
SQL.

www.urjc.es 25/01/22 12
Consultas: Crear una consulta
 Para crear una consulta hay que seleccionar la pestaña   de la
ventana de la base de datos.
 Si no se está en la ventana Base de datos, para volver a ella se pulsa el
botón base de datos .
 En la ventana Consultas puede aparecer algún elemento creado si se ha
guardado algún filtro:

www.urjc.es 25/01/22 12
Consultas: Crear una consulta
 Paracrear una consulta nueva se pulsa el botón Nuevo.
 Aparecerá esta ventana:

www.urjc.es 25/01/22 12
Consultas: Crear una consulta
 Estas son las opciones que ofrece Access para crear una consulta:
 Vista diseño: permite realizar una consulta sin la ayuda del asistente.
 Asistente para consultas sencillas: crea una consulta
automáticamente, según los campos seleccionados.
 Asistente para consultas de referencias cruzadas: crea una consulta
que muestra los datos con un formato compacto, parecido al de una
hoja de cálculo.
 Asistente para consultas destinados a buscar duplicados: crea una
consulta en la que se buscan registros con valores duplicados en un
campo.
 Asistentes para consultas destinados a buscar no coincidentes: crea
una consulta que busca registros que no tienen registros
relacionados en otra tabla.

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 Dentro de la ventana de Nueva Consulta se selecciona la
opción Vista Diseño y se pulsa Aceptar.
 Automáticamente se abrirá la ventana de la consulta e
inmediatamente otra ventana donde se debe elegir en que
tabla/s se va a realizar la consulta.

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 En este ejemplo se va a elegir la tabla Pacientes.
 Tras seleccionar la tabla se pulsa Agregar.
 Se pueden seleccionar más tablas, e incluso consultas.
 Una vez se hayan elegido los elementos sobre los que se quiera realizar la
consulta se pulsa Cerrar.
 Si tras cerrar se quiere volver a abrir la ventana de agregar Tablas se pulsa
el botón   o se selecciona el menú Consulta/Mostrar Tabla.
 El aspecto de la ventana de una consulta es este:

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 Al igual que en los filtros, la ventana se divide en dos
secciones:
 La superior: muestra los elementos sobre los que se va a
realizar la consulta.
 La inferior: muestra los criterios que se van a aplicar en la
consulta a la tabla o consulta seleccionada.
 El proceso de creación de los criterios es muy similar al de los
filtros.
 En las consultas hay un elemento más, que da la opción de que
un criterio de selección se vea o no. Esta opción es Mostrar.

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 Campo:
 En esta casilla se pueden seleccionar todos los campos de la tabla
( con el *) o de uno en uno, seleccionando cada uno en una
columna.
 La forma de incluir el nombre de un campo en esta casilla es:
1. Arrastrando el nombre del campo desde la sección superior.
2. Haciendo doble clic en la tabla de la sección superior.
3. Haciendo clic sobre la casilla campo y pulsando sobre la flecha que
aparece. Se desplegará una lista de los campos para seleccionar.
 Tabla:
 En esta casilla figura la tabla de la que procede el campo
seleccionado en esa columna.
 Esta opción es muy importante cuando se trabaja con campos de
varias tablas.

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 Orden:
 Ascendente, descendente o sin orden.
 Este orden se aplicará a los registros que se obtengan en la consulta según la
columna en la que se esté indicando el orden.
 El criterio se establece en un campo y se ordenan los resultados en función del
campo que se quiera.
 Para seleccionar el tipo de orden que se quiere se hace clic sobre la casilla Orden,
aparecerá una flecha en la zona derecha de la casilla.
 Al pinchar sobre la flecha aparece un menú con los tipos de orden aplicables a la
consulta.
 Mostrar:
 Esta casilla tiene un pequeño cuadrado, al hacer clic dentro de este cuadrado se
está indicando al programa que se muestre ese campo.
 Esto tiene sentido cuando se quiere indicar un criterio más para restringir la
búsqueda, pero no se quiere mostrar en el resultado de la búsqueda.
 Si la casilla esta activada   este criterio aparecerá.
 Si no está activada .

www.urjc.es 25/01/22 12
Consultas: Crear una consulta sin asistentes
 Criterios:
En esta casilla se introduce la condición/es que debe cumplir
un campo para que el registro aparezca en la respuesta a la
consulta.
 Cuando se ejecuta la consulta, el programa analiza la
expresión de la casilla criterios.
 Dentro del campo se buscan todos los valores que coincidan
con el criterio.
 Los criterios pueden introducirse en uno o más campos de
una consulta.
 O incluso introducir varios criterios en un mismo campo.
 No es necesario rellenar todas las casillas en cada columna.
 Todo depende de lo que se quiera pedir al programa.

www.urjc.es 25/01/22 13
Consultas: Crear una consulta sin asistentes
 Ejercicio:
 Una forma más sencilla de ver una búsqueda es un ejemplo.
 Con la tabla de Pacientes se va a realizar el siguiente ejemplo: Buscar los
pacientes que vivan en Madrid.
 En este ejemplo sólo se establece un criterio en un campo: "Provincia", y el
criterio "Madrid".
 De todos aquellos registros en los cuales el campo Provincia sea Madrid se le pide
que muestre: el nombre y el apellido de los pacientes, además del criterio, que no
está oculto.
 Si no se le añaden más campos no mostrará más datos del registro que cumple el
criterio.

www.urjc.es 25/01/22 13
Consultas: Crear una consulta sin asistentes
 Para ejecutar la consulta se pulsa el botón o se selecciona el
menú Consulta/Ejecutar.
 El programa devolverá el o los registros que cumplan con ese
criterio, si es que los hay.
 Para mostrar los resultados se abrirá la Hoja de respuesta dinámica
en la Vista Diseño.
 En esta hoja aparecerán únicamente los datos solicitados en la
Consulta.

www.urjc.es 25/01/22 13
Consultas: Crear una consulta sin asistentes
 Para modificar los criterios de una consulta se cambia a la Vista Diseño.
 Si se quiere que se muestren todos los datos de los pacientes procedentes
de Madrid habrá que hacerlo de la siguiente forma.

 Se ha establecido el criterio Madrid en el campo Provincia.


 A continuación en lugar de detallar cada campo en una columna se han
seleccionado todos los campos en una sola celda con el asterisco.
 Se ha ocultado el criterio, pero se muestran todos los campos de la Tabla
Pacientes.

www.urjc.es 25/01/22 13
Consultas: Crear una consulta sin asistentes

 Se ejecuta la consulta pulsando es resultado será este:

www.urjc.es 25/01/22 13
Consultas: Establecer criterios
 Dentro de la casilla criterio se escribe una expresión, bien de texto,
numérica o numérica con operadores.
 Gracias a los operadores, además de palabras, se pueden imponer
otro tipo de condiciones a las búsquedas dentro de los registros.
 Rangos de valores:
◦ Para buscar un rango de valores dentro de un campo se utilizan
estos operadores:
◦ Entre...Y: por ejemplo para seleccionar los pacientes mayores de
18 años pero menores de 50. En la casilla Criterios se escribirá:
Entre 18 Y 50.
◦ <,>,>=,<=,<>: operadores de comparación.

www.urjc.es 25/01/22 13
Consultas: Establecer criterios
 Varios criterios
◦ En diferentes campos: criterio Y: cuando se escriben varios criterios
en el mismo renglón el programa buscará un registro que cumpla
todos los criterios.

◦ El criterio Y se puede utilizar en un mismo campo: >80 Y <100


◦ En un mismo campo: criterio O: cuando se pone un criterio en la
casilla "Criterio", otro en la casilla o, y si se quiere más criterios en las
filas de debajo.
◦ El programa buscará un registro que cumpla al menos uno de los
criterios.
www.urjc.es 25/01/22 13
Consultas: Establecer criterios

 Este criterio también se puede utilizar en distintos campos:

 Seleccionará los registros que o el campo provincia sea Madrid, o bien


el campo edad sea mayor de 18.

www.urjc.es 25/01/22 13
Consultas: Los comodines
 Se utilizan para buscar datos genéricos, que empiezan por una letra, que
terminan por otra, etc.
 * Representa cualquier número de caracteres, por ejemplo: todos los
nombres que terminen por "ez”: *ez.
 Otro ejemplo: buscar las personas que tienen un nombre compuesto y
uno de los dos nombres es "Luis".
 Se debe escribir el siguiente criterio: Como *Luis* o Como * + Luis +
*.
 Access agregará las comillas.
 # se utiliza para consultas sobre fechas.
 Si queremos que nos muestre los registros de una fecha en particular
debemos escribirla del siguiente modo: #15/02/2007#.
 Al introducir una expresión con uno de estos operadores, Access añadirá
automáticamente el operador "Como".

www.urjc.es 25/01/22 13
Consultas: Selección de registros con datos o sin datos
 Se puede seleccionar un registro por el criterio de si en el
campo hay un dato, o si está vacío.
 Pacientes que tienen teléfono: Es Negado Nulo

 Pacientes que no tienen teléfono: Nulo o es Nulo

www.urjc.es 25/01/22 13
Consultas:
 Fecha actual:
 Se pueden seleccionar los registros que tengan la fecha
actual.
 Por ejemplo en una empresa para seleccionar los pedidos que
haya que entregar ese día.
 En criterios se escribe Fecha().
 Condición variable:
 Para hacer una condición variable; que realice una pregunta
cada vez que se abra o ejecute la consulta, se coloca la
pregunta entre corchetes [ ] debajo del campo que se desea
variar (consultas con parámetros).

www.urjc.es 25/01/22 14
Consultas:
 Criterios con cálculo:
 Dentro de un criterio se puede realizar un cálculo haciendo
referencia a otro campo.
 Por ejemplo en la base de datos de una empresa de venta de
material de construcción se va a consultar:

 Se pide que liste a aquellos clientes cuyo Importe sea mayor a la


cantidad por 10.
 Se ha creado el campo importe que no existía, que es un campo
calculado.
 Los campos van siempre entre corchetes.
www.urjc.es 25/01/22 14
Consultas:
 Dentro del criterio se ha realizado una operación y en función
del resultado se han seleccionado o no los registros.

www.urjc.es 25/01/22 14
Consultas: Guardar las consultas
 Siempre es recomendable que se prueben varias veces las
consultas para asegurarse que el resultado es el esperado.
 Una vez se comprueba que el resultado es el que se esperaba,
hay que pensar en guardar o no la consulta.
 Todo depende de la frecuencia con la que se vaya a usar esa
consulta.
 Si se va a usar más veces es conveniente guardarla para no
tener que rediseñarla la próxima vez.
 La consulta se puede guardar desde la Vista Diseño o la Vista
Hoja de datos.
 Se selecciona el botón guardar o el menú Archivo/Guardar.

www.urjc.es 25/01/22 14
Consultas: Campos calculados
 Se puede crear un campo que realice una operación con varios campos de
una misma tabla.
 En nuestro ejemplo del hospital se ha creado el campo calculado
"Importe".
 Pasos para crear un campo calculado:
1. Se selecciona una columna en blanco, se escribe el nombre del nuevo campo
seguido de dos puntos. "Importe:"
2. Se escribe la operación, cuando se hace referencia a un campo este debe ir
entre corchetes [ ].
 "Importe: [Cantidad] *[Precio Unidad]
 Si sólo se va a operar con un campo, se puede seleccionar el campo de la
lista de campos y al añadir un símbolo de operación: /*-+ el programa
añadirá el corchete al campo y pondrá un nombre al nuevo campo.
 El nombre será Expr, Expr1, etc.

www.urjc.es 25/01/22 14
Consultas: Consultas con asistentes
 Asistente para consultas sencillas:
◦ El Asistente para consultas sencillas crea consultas que
recuperan datos de los campos especificados en una tabla
o consulta, o en varias tablas o consultas.
 Asistente para consultas de referencias cruzadas:
◦ Una consulta de tabla de referencias cruzadas calcula
totales resumidos basándose en los valores de cada fila y
columna.
◦ Calcula una suma, una media, un recuento u otros tipos de
totales de los registros y luego agrupa el resultado en dos
tipos de información: uno hacia abajo, en el lado izquierdo
de la hoja de datos y otro a lo largo de la parte superior.

www.urjc.es 25/01/22 14
Consultas: Consultas con asistentes
 Asistente para consultas de buscar duplicados:
◦ Con este asistente se puede determinar si existen registros duplicados en una
tabla o determinar qué registros de una tabla comparten el mismo valor.
◦ Por ejemplo, se pueden buscar valores duplicados en un campo de dirección
para determinar si existen registros duplicados para el mismo paciente.
◦ También se pueden buscar valores duplicados en un campo de población para
todos los pacientes de una misma ciudad.
◦ Puede ser una herramienta útil si se han importado datos desde otra base de
datos, ya que permite depurarlos.
 Asistente para buscar registros no coincidentes:
◦ Mediante este Asistente se pueden buscar registros en una tabla que no tenga
registros relacionados en otra tabla.
◦ Por ejemplo, puede buscar pacientes que no hayan realizado ninguna visita.
◦ También es útil si se han importado datos desde otra base de datos, ya que
permite depurarlos.

www.urjc.es 25/01/22 14
Consultas: Consultas con parámetros
 Se recurre a ellas cuando se quiere hacer una consulta que permita pedir
un dato antes de ejecutarla y buscar según ese dato.
 Una consulta que tiene uno o varios parámetros necesitará que éstos se
indiquen para buscar datos en la tabla.
 Por ejemplo, para realizar una consulta sobre los nombres de los médicos
que trabajan en un determinado departamento de un hospital, se tendrá
que hacer una consulta por especialidad utilizando el procedimiento
habitual.
 Si se utiliza una consulta diseñada con parámetros se podrá decir qué
especialidad se busca cada vez que se ejecute una nueva consulta.
 El proceso es muy parecido al de una consulta normal.
 Se selecciona la tabla, se seleccionan los campos y los criterios.
 En este caso se va a utilizar la tabla de médicos.

www.urjc.es 25/01/22 14
Consultas: Consultas con parámetros
 Después de crear una consulta normal se selecciona el menú
Consulta/Parámetros.
 Se abrirá esta ventana:

 Parámetro: no debe tener el mismo nombre que el campo.


 Tipo de campo: debe corresponder con el del campo.
www.urjc.es 25/01/22 14
Consultas: Consultas con parámetros
 Se crean los parámetros deseados, cada parámetro tiene un
nombre y un tipo de datos.
 El nombre no puede ser igual al nombre de un campo de la
tabla y el tipo de datos debe corresponder con el tipo de datos
del campo por el que se va a buscar.
 En el campo por el que se va a buscar hay que añadir el
criterio.
 En este caso el criterio es el nombre del parámetro entre
corchetes:

www.urjc.es 25/01/22 14
Consultas: Consultas con parámetros
 Cuando se ejecute la consulta aparecerá una ventana que pide
el valor del parámetro.

 Dentro del recuadro en blanco se escribe la especialidad sobre


la que se desea obtener la lista de médicos que trabajan allí.
 Después se pulsa Aceptar.

www.urjc.es 25/01/22 15
Consultas: Consultas con parámetros
 Esta será la hoja de respuestas dinámica:

www.urjc.es 25/01/22 15
Consultas: Consultas basadas en más de
una tabla

 Se crean de la misma forma que las anteriores, sólo que a la


hora de agregar tablas se puede agregar más de una.
 De esta manera es posible reflejar las relaciones entre las
tablas, y recuperar los registros relacionados de las dos tablas.
 De cada tabla se seleccionan los campos que se necesitan,
arrastrándolos y pegándolos en las celdas de la consulta.
 Se agregan los criterios que se crean convenientes, de la
misma manera que en las consultas basadas en una sola tabla.

www.urjc.es 25/01/22 15
Consultas: Consultas avanzadas
 Hasta ahora hemos visto consultas de selección, consultas con parámetros
y consultas con campos calculados.
 Para seleccionar otro tipo de consulta más compleja se debe crear una
consulta de selección, y después ir al menú consulta/…:

www.urjc.es 25/01/22 15
Consultas: Consultas avanzadas
 Consulta de creación de tabla:
◦ Este tipo de consulta puede ser usada cuando se quiera crear una tabla
nueva a partir de registros provenientes de ejecutar una consulta.
◦ La nueva tabla no heredará las propiedades de los campos, ni la clave
principal que tuviera la tabla origen.
 Consulta de actualización:
◦ Este tipo de consultas pueden ser usadas cuando se quiera actualizar
varios registros de una tabla, de una sola vez.
◦ Se pueden ver los registros a actualizar antes de ejecutar la consulta y
que sean modificados permanentemente.

www.urjc.es 25/01/22 15
Consultas: Consultas avanzadas
 Consulta de datos anexados:
◦ Este tipo de consultas pueden ser usadas cuando se quiera
añadir registros a una tabla de otra que ya contenga
algunos.
◦ Entonces, se podrán agregar datos que estaban en otra
tabla de Access o bien en otros formatos de Tabla, como
pueden ser DBase, Paradox.
 Consulta de eliminación:
◦ Este tipo de consultas pueden ser usadas cuando se quiera
eliminar varios registros de una tabla que cumplan
determinados criterios.

www.urjc.es 25/01/22 15
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
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
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 2014-05-02\03 - MARIA REINA\1 Bibliografía\04 SQL 0 Itroducción.doc
Ejemplo: Selección de Todas las Columnas y Filas
 
SQL> SELECT *
2 FROM s_dept;
 
ID NAME REGION_ID
--------- ------------------------- ---------
10 Finance 1
31 Sales 1
32 Sales 2
33 Sales 3
34 Sales 4
35 Sales 5
41 Operations 1
42 Operations 2
43 Operations 3
44 Operations 4
45 Operations 5
50 Administration 1
 
12 filas seleccionadas.
Ejemplo: Selección Columnas específicas
 
SQL> SELECT dept_id, last_name, manager_id
2 FROM s_emp;
 
DEPT_ID LAST_NAME MANAGER_ID
--------- ------------------------- ----------
Etiquetas de Columnas
50 Velasquez
 
41 Ngao 1
Por defecto la etiqueta es el nombre dado a la
31 Nagayama 1
columna en la definición de la tabla.
10 Quick-To-See 1
50 Ropeburn 1
Se puede reemplazar el nombre de la columna con
41 Urguhart 2
un alias.
42 Menchu 2
Por defecto, las etiquetas se muestran en
43 Biri 2
mayúsculas.
. . .
 
Las etiquetas de las columnas tipo carácter o fecha
25 filas seleccionadas.
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.
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 2500 30000
Ngao 1450 17400
Nagayama 1400 16800
Quick-To-See 1450 17400
Ropeburn 1550 18600
Urguhart 1200 14400
. . . Operadores Descripción

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

166
Solución del SQL

167
Ejemplos de SQL (2)
Asumiendo la existencia de los siguientes archivos (entidades)

168
Solución del SQL (2)

169
Ejemplo Numérico

Se obtienen las siguientes tuplas

Asumiendo estos datos


en las entidades

170
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

171
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

En su ejecución
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

172
Ejemplo de transacción

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

174
Bases de Datos
Desarrollo del Sistema
Diseño de Bases para Almacenes
Tablas Normalizadas
Tabla Mercados Falta CPRMER
Tabla Almacenes

Tabla AlmFru Tabla Provincias

Tabla Puestos

Tabla Ciudad
CodPro

Tabla Medidas
Tabla Frutas

Tabla Almmer
Tabla Propietarios

182
Tablas Normalizadas
Tabla PtoFru

Tabla FACTURAS

Esta tabla está


bien diseñada
¿?

183
Creación de una Base de Datos

184
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.

25/01/22 18
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.

25/01/22 186
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.
25/01/22 187
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.

25/01/22 188
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.

25/01/22 189
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.

25/01/22 190
Creación de Tablas

191
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.

25/01/22 192
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.

25/01/22 193
Tablas: Creación desde el menú
Aparece el siguiente cuadro de diálogo:

25/01/22 194
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.

25/01/22 195
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.

25/01/22 196
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.

25/01/22 197
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.

25/01/22 198
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.

25/01/22 199
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 .

25/01/22 200
Tablas: Vista Diseño
• Ahora veremos el significado de cada propiedad del
campo que nos aparece en la Vista Diseño de nuestra tabla:

25/01/22 201
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 -2.000 millones y 2.000 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.

25/01/22 202
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. 25/01/22 203
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".
25/01/22 204
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. 25/01/22 205
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.

25/01/22 20
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.

25/01/22 20
Tablas: Tipos de Datos
Valor Tipo de datos Tamaño
Texto Texto o combinaciones de texto y números, así Hasta 255 caracteres o la longitud
que indique la
como números que no requieran cálculos, como
los números de teléfono. Es el predeterminado. propiedad Tamaño del campo.

Memo Estos campos son particularmente adecuados para


dotar a cada registro de la tabla de un lugar para
Hasta 65.535 caracteres.

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.

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.

Valores de moneda y datos numéricos utilizados en 8 bytes.


Moneda 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.
25/01/22 20
Tablas: Tipos de Datos
Sí/No Valores Sí y No, y campos que contengan uno
de entre dos valores (Sí/No, Verdadero/Falso o
1 bit.

Activado/desactivado).

Objeto OLE Objeto (como por ejemplo una hoja de cálculo


de Excel, un documento de Word, gráficos,
Hasta 1 gigabyte (limitado por el
espacio disponible en disco)
sonidos u otros datos binarios) vinculado o
incrustado en una tabla de Access.

Hipervínculo Almacena una ruta UNC o una URL. Hasta 64000 caracteres.

Autonumérico Número secuencial (incrementado de uno a


uno) único, o número aleatorio que Microsoft
4 bytes (16 bytes si el valor de la
propiedad Tamaño del campo es
Access asigna cada vez que se agrega un Id. La réplica).
nuevo registro a una tabla. Los campos
Autonumérico no se pueden actualizar.

Crea un campo que permite elegir un valor de Tamaño igual al del campo clave
Asistente para otra tabla o de una lista de valores mediante principal utilizado para realizar la
búsquedas un cuadro de lista o un cuadro combinado. búsqueda.

25/01/22 209
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.

25/01/22 210
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.

25/01/22 211
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.

25/01/22 212
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.

25/01/22 213
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.

25/01/22 214
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.

25/01/22 215
Tablas Reglas de Validación

216
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.

25/01/22 21
Tablas: Reglas de validación:
 EJEMPLO:
 Abrimos la base de datos “Empresa”.
 Hacemos clic sobre la tabla “Pedidos”/Diseño.

21
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.

25/01/22 21
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 “<“.

22
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.

25/01/22 22
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.
www.urjc.es 25/01/22 22
Tablas: Reglas de validación:
 El resultado es el siguiente:

www.urjc.es 25/01/22 22
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.

www.urjc.es 25/01/22 22
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í”.

www.urjc.es 25/01/22 22
Creación de Relaciones entre Tablas
(Modelo de Datos)

226
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.

25/01/22 22
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.
25/01/22 22
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.
25/01/22 22
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.
25/01/22 23
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í.

25/01/22 23
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.

25/01/22 23
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:

25/01/22 23
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.

25/01/22 23
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.

25/01/22 23
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:

25/01/22 23
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í.

25/01/22 23
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.
25/01/22 23
Tablas: Relaciones
 Exigir integridad referencial:

 La integridad referencial son unas normas que mantienen la coherencia de


datos entre dos tablas relacionadas. Estas normas son:
1. No puede haber registros en la tabla secundaria que no estén en la primaria.
2. 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 :
1. El campo relacionado de la tabla principal sea la clave principal.
2. 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).

3. No se pueden relacionar un campo de texto con uno de fecha, o uno numérico


con uno de texto.
4. Ambas tablas deben pertenecer a la misma base de datos .

25/01/22 23
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.

25/01/22 24
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.
 Ejemplos:
◦ 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.
25/01/22 24
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.
25/01/22 24
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.

25/01/22 243
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).

25/01/22 24
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:

25/01/22 24
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.

25/01/22 24
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.

25/01/22 24
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).
25/01/22 248
Modelo de Datos

249
Modelo de Datos

250
Modelo de Datos

251
Desarrollo de Aplicaciones

PROGRAMACIÓN EN
VISUAL BASIC .NET

252
Private Sub Almacenes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Try
conexion = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:\Users\licrg\Desktop\Mercados22082016\Mercados2016\Mercados
2016.accdb;Persist Security Info = False;")

conexion.Open()
Cargar_Combobox()

MessageBox.Show("La Conexion a la base de datos ha sido exitosa", "Correcto",


MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception
MsgBox("Se ha producido un error al querer conectarse con la base de datos",
vbExclamation, "Error")
Exit Sub

End Try

End Sub

253
Private Sub btnaltalm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaltalm.Click
txtcifalm.Enabled = False
txtnomalm.Enabled = False
CBOXALMACEN.Enabled = True
CBOXALMACEN.Visible = True

If MessageBox.Show("Desea dar ALTA a este almacen?", "ALTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) =


Windows.Forms.DialogResult.Yes Then
Try
Dim AlmDataSet As DataSet
Dim NuevaFila As DataRow
AlmDataSet = New DataSet
AlmDataSet.Tables.Add("ALMACENES")
Adaptador.Fill(AlmDataSet.Tables("ALMACENES"))
NuevaFila = AlmDataSet.Tables("ALMACENES").NewRow
NuevaFila("CODALM") = CBOXALMACEN.Text
NuevaFila("NOMALM") = txtnomalm.Text
NuevaFila("CIFALM") = txtcifalm.Text
AlmDataSet.Tables("ALMACENES").Rows.Add(NuevaFila)
Adaptador.InsertCommand = New OleDbCommand("insert INTO almacenes (CODALM, NOMALM, CIFALM) VALUES
(@cam,@nom,@cif)", conexion)
Adaptador.InsertCommand.Parameters.Add("@cam", OleDbType.VarChar, 4, "CODALM")
Adaptador.InsertCommand.Parameters.Add("@nom", OleDbType.VarChar, 35, "NOMALM")
Adaptador.InsertCommand.Parameters.Add("@cif", OleDbType.VarChar, 15, "CIFALM")
Adaptador.Update(AlmDataSet.Tables("ALMACENES"))
MessageBox.Show("Alta de Nuevo Almacen Correcto", "Alta", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtnomalm.Clear()
txtcifalm.Clear()
CBOXALMACEN.Items.Clear()
Cargar_Combobox()
Catch ex As Exception
MsgBox("Algo Paso, Hubo Error", vbYes, "ERRORCETE")
End Try
End If
End Sub

254
Ejemplo en vb.net
¿Cómo programar un Botón para agregar registros a
una base de datos?
Creamos una base de datos llamada Ejemplo_censo con
una tabla llamada «personas_censadas».

(Vista hoja de datos)


Vamos a Visual Studio 2012, elegimos el lenguaje de
programación Visual Basic y Creamos la interfaz de
nuestro formulario inicial.
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.
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.
Escribimos este código en el botón NUEVO:
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.
(http://msdn.microsoft.com/es-es/library/system.data.oledb(v=vs.80).aspx
http://msdn.microsoft.com/es-es/library/system.data.oledb(v=vs.80).aspx)

Hacemos doble click en el formulario frmNuevoRegistro y colocamos


la siguiente línea antes de Public class…
Enlazamos la base de datos a nuestro proyecto tal como se explicó
aquí, en Orígenes de datos  Agregar nuevo origen de datos.
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.
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?
Vamos a generar el Import; Definir las variables y programar el
Evento Load del formulario, es decir, el procedimiento que se
ejecutará al cargar el formulario para generar la conexión a la BD:
Imports System.Data.OleDb
Public Class ABM_Puestos
Dim Conexion As New OleDb.OleDbConnection
Dim Comandos As OleDbCommand
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Programamos el Evento LOAD del Formulario'
'La instrucción Try... End Try se utiliza para el control estructurado de la excepciones'
Try
'se establece la conexion con la Base de Datos'
Conexion = New OleDbConnection()
Conexion.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\99_Mercado\Mercados.mdb")
Conexion.Open()
MsgBox("La Conexión ha sido EXITOSA", vbInformation, "Correcto")
Catch ex As Exception
'En caso de excepción (no poder abrir la conexión) se genera una advertencia al usuario'
MsgBox("La Conexión NO ha sido EXITOSA", vbExclamation, "ERROR")
End Try
End Sub

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

(3)
(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.
PROGRAMAMOS EL BOTÓN GUARDAR:

Continúa…
BOTÓN GUARDAR:
CONTINUACIÓN…
FINALMENTE, PROGRAMAMOS EL BOTÓN VOLVER.

LISTO… PROBEMOS A VER CÓMO FUNCIONA…


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…


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.
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.
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.
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.
VAMOS A VERIFICAR SI REALMENTE SE HA GUARDADO EL REGISTRO
QUE ACABAMOS DE AÑADIR…

ACÁ ESTÁ… ¡HA FUNCIONADO! 


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

Nota: El ejemplo está hecho con Visual Studio 2012 y


Access 2010.
Diseñamos la interfaz del formulario frmActualizar…

COLOCAMOS TODOS LOS CAMPOS (EXCEPTO TXTCEDULA) Y LOS BOTONES MODIFICAR Y


ACTUALIZAR CON LA PROPIEDAD ENABLED = FALSE.
Declaramos las variables que vamos a necesitar.
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.
Programamos el botón Buscar para cargar la información del
registro en los campos del formulario.
Se programa el botón Modificar para que active los campos permitiendo
la escritura.
PROGRAMAMOS EL BOTÓN ACTUALIZAR:

CONTINÚA…
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 & " "
BOTÓN ACTUALIZAR (CONTINUACIÓN…):
FINALMENTE, PROGRAMAMOS EL BOTÓN VOLVER.

VAMOS A VER CÓMO FUNCIONA…


VAMOS A VER LOS REGISTROS QUE TENEMOS EN NUESTRA BASE DE
DATOS…

DIGAMOS QUE QUEREMOS ACTUALIZAR EL REGISTRO CON LA


CÉDULA 10111000…
INICIAMOS LA EJECUCIÓN DEL PROYECTO.
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.
AL APARECER EL FORMULARIO ACTUALIZAR, INGRESAMOS LA
CÉDULA EN EL CAMPO CORRESPONDIENTE Y HACEMOS CLICK EN EL
BOTÓN BUSCAR.
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.
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.
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.
UNA VEZ ACTUALIZADO EL REGISTRO, SE DESACTIVAN NUEVAMENTE
LOS CAMPOS Y LOS BOTONES MODIFICAR Y ACTUALIZAR.
VERIFICAMOS EN LA BASE DE DATOS…

EL REGISTRO SE ACTUALIZÓ CORRECTAMENTE…


Ejemplo en vb.net
¿Cómo programar un Botón para ELIMINAR
registros a una base de datos?
DECLARAMOS LAS VARIABLES QUE VAMOS A
NECESITAR.
Diseñamos la interfaz del formulario frmEliminar…

COLOCAMOS TODOS LOS CAMPOS (EXCEPTO TXTCEDULA) Y EL BOTÓN ELIMINAR CON


LA PROPIEDAD ENABLED = FALSE.
Programamos el evento Load del formulario para que se abra
la conexión al cargar.
Se programa el botón Buscar para cargar la información del registro en
los campos del formulario y activar el botón Eliminar.
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.
Finalmente, se programa el botón Volver para cerrar la conexión y
regresar al formulario anterior.
VAMOS A VER LOS REGISTROS QUE TENEMOS EN NUESTRA BASE DE
DATOS…

SUPONGAMOS QUE QUEREMOS ELIMINAR EL REGISTRO CON LA


CÉDULA 12333333…
INICIAMOS LA EJECUCIÓN DEL PROYECTO.
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.
AL APARECER EL FORMULARIO ELIMINAR, INGRESAMOS LA
CÉDULA EN EL CAMPO CORRESPONDIENTE Y HACEMOS CLICK EN
EL BOTÓN BUSCAR.
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.
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.

También podría gustarte