Download base de datos - Lic. Roberto García

Document related concepts

Normalización de bases de datos wikipedia , lookup

Modelo relacional wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Cuarta forma normal wikipedia , lookup

Base de datos objeto wikipedia , lookup

Transcript
2016
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. Efectuar prácticas
con el lenguaje
2
Contenido
1.
2.
3.
4.
5.
6.
7.
8.
Introducción
El ambiente tecnológico de las bases de datos
El modelo relacional
Instrumentación de la base de datos
Normalización
Integridad y Seguridad
Lenguajes para bases de datos
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
( Sistema de Archivos )
Cada aplicación recurre a archivos separados.
2. Gestión centralizada
( Sistema de Bases de Datos )
Datos centralizados
aplicaciones
y
compartidos
por
todas
las
Aplicaciones con Manejo de Datos Independiente
Num. Cliente nombre cliente
2056
juan pérez
Sistema
de
Archivos
Aplicación 1
Archivo de cuentas corrientes
DatosCuentaCorriente
........ ........ ....... .......
Archivo de Ahorros
Num. Cliente
2056
Datos de Ahorros
nombre cliente
juan pérez
redundancia
........ ........ ....... .......
Aplicación 2
Aplicación 3
Archivo de prestamos
inconsistencia
Num. Cliente
2056
nombre cliente
Juan A. Pérez
Datos de Prestamos
........ ........ ....... .......
 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
nombre cliente
2056
Archivo de
Cuentas
Corrientes
juan pérez
Datos de
cuentas
corrientes
Archivo de
Cuentas de
Ahorros
Datos de
cuentas de
ahorros
Datos de
Cuentas
Corrientes
Datos de
Cuentas de
Ahorros
Archivo de
Préstamos
Datos de
Prestamos
Datos de
préstamos
Aplicación 3
Aplicación 3
Num. Cliente
Enfoque
de Bases
de Datos
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
9
cuentas de un cliente o de todos los clientes.
… Datos Independientes
Dpto. Personal
Empleados
Dpto. Ventas
Clientes
Ventas
Dpto. Contabilidad
Cuentas
Inventario
… Centralizado
Personal
Ventas
Contabilidad
BASE DE DATOS
SGBD
Empleados
Clientes
Ventas
Inventario
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
Diccionario de Datos o Catalogo
(Metadatos ). Aquí va la información de la
estructura de cada archivo, el tipo y
formato de los datos elementales y las
diversas restricciones que se aplican a
nivel de columna o de archivo.
Independencia respecto a programas y
datos
Abstracción: Las estructuras de los
archivos se almacenan en el diccionario de
datos del SGBD y no en los programas.
Manejo de múltiples vistas de los datos
Cada usuario puede tener una vista ó
perspectiva diferente.
Control de Concunrrencia
El SGBD incluye software de control de
concurrencia (gestor de transacciones)
para asegurar que cuando varios usuarios
intenten actualizar los mismos datos, lo
hagan de manera sincronizada.
Control de Redundancia
Queda minimizada o controlada la
repetición del mismo dato en diferentes
archivos. De esta forma ya no se
desperdicia espacio de almacenamiento
ni se producen inconsistencias.
Restricción de accesos no autorizados
Niveles de acceso: Manejo de roles y
privilegios por cuentas y/o grupo de
cuentas.
Restricciones de Integridad
Ejemplos: definir un tipo de dato (entero
o String), las edades de colegiales (13 a
17), que un valor sea único (código de
trabajador ), etc
Respaldo y Recuperación
Se recuperan ante fallas de hardware o
de software. La idea es que después de
una caída, se restaure la BD al estado en
el que estaba.
Comparación entre
Archivos y Base de Datos





Dependencia de ligas externas
a los datos
Datos sin compartir en toda la
empresa
Redundancia de los datos
Archivos no relacionados
entre sí
Acceso limitado y con poca
flexibilidad, eficiencia y
seguridad
• Independencia a ligas externas
•
•
•
•
a los datos
Datos compartidos y
compatibles en la empresa
Redundancia mínima y
controlada
Datos relacionados de acuerdo
a un modelo
Flexibilidad, Integridad,
Eficiencia y seguridad
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
BASE
DATOS
ASP
PHP
JAVA
.NET
Applicación
Cliente
VisualBasic
PowerBuilder
VisualFox
Delphi
SQL
SQL Server
ORACLE
INFORMIX
DB2
Modelo Datos
21
Diversos Modelos de una BD
En realidad han existido diversos modelos para
modelar la realidad, aquí presentamos algunos de ellos
Modelo Jerárquico
Primer modelo de BD, IMS es la mas popular
Modelo de Redes Definido por C. Bachman, IDMS fue el producto comercial
Modelo Relacional Funcional Diseño de Codd popularizado por Date (RDB, Oracle, Sybase, Informix )
Modelo Entidad - Relación
Concepción de Chen, muy usado aplicable a diversos modelos ( j,r,rel)
Modelo Semántico Inicialmente de R. Quillian usado solo en investigación
Modelo Binario Instrumentado por Stonebraker basado en el modelo de Codd (Ingres)
Modelo Orientado a Objetos Popular al representar la tendencia actual (Ilustra, O2 )
Modelo Mutlirelacional Extensión al relacional con inversión total
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 BD
(Niveles de abstracción)
NIVEL EXTERNO
Es conocido como el nivel de vistas de usuario.
Cada vista de usuario se conoce como subesquema o esquema
externo, donde cada uno de ellos describe alguna parte de la base
de datos. Oculta al usuario toda la base de datos restante.
NIVEL
CONCEPTUAL
A este nivel se tiene el esquema de la base
de datos, que describe la estructura de toda la base de datos.
El esquema conceptual oculta los detalles de las estructuras
físicas de almacenamiento y se concentra en describir
entidades, tipos de datos, relaciones, operaciones y
restricciones
NIVEL INTERNO o
FISICO
tiene un esquema interno o físico.
Describe como se almacenan realmente los datos y los caminos
de acceso a la base de datos.
Arquitectura de una BD
La BD presenta una arquitectura de tres niveles:
Usuarios finales
NIVEL
EXTERNO
NIVEL
CONCEPTUAL
Vista
Externa 1
Vista
Externa 2
...
Vista
Externa n
Correspondencia
externa/conceptual
ESQUEMA CONCEPTUAL
Correspondencia
conceptual/ interna
NIVEL
INTERNO
ESQUEMA INTERNO
BD ALMACENADA
Correspondencia : proceso de transformar pedidos y respuestas de un nivel a otro
detalle
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
normales
Programadores
de aplicaciones
Interfaces de
aplicaciones
Programas de
aplicacion
Precompilador
del DML
Código objeto
de las
aplicaciones
Gestor de
transacciones
Usuarios
sofisticados
Consulta
compilador
del DML
Administrador de
Base de Datos
Usuarios
Esquema de
base de datos
Interprete
del DDL
Procesador
de
Consultas
Motor de evaluación de
consultas
Gestor de memoria intermedia
Gestor de
almacenamiento
Gestor de archivos
Archivos de datos
estadística
indices
Diccionario de datos
Sistema
de gestión
de base de
datos
¿Cómo Diseño la Base de Datos ?
Interacción con el sistema
Usuarios
Sistema
Requerimientos
BASE
DATOS
Etapas para el Diseño de una Base de Datos
Requerimientos de Información
(I)
DISEÑO CONCEPTUAL
(II)
DISEÑO LOGICO
(III)
DISEÑO FISICO DE LA BASE DE DATOS
BASE
DATOS
Etapas para el Diseño de una Base de Datos
Requerimientos de Información
Usuarios
y Clientes
DISEÑO CONCEPTUAL
Cliente
Producto
Documentos
DISEÑO LOGICO
RED
RELACIONAL
OO
DISEÑO FISICO DE LA BASE DE DATOS
ORACLE
SQL Server
ACCESS
DB2
MYSQL
INFORMIX
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.
1. Modelo Jerárquico
SGBD de Primera
2. Modelo de Redes
Generación
SGBD de Segunda
3. Modelo Entidad Relación
Generación
4. Modelo Relacional
5. Modelo de Objetos
6. Modelo Objeto-Relacional
Alto Nivel
Nivel Implementación
Los modelos de datos se clasifican :
SGBD de Tercera
Generación
BD. DISTRIBUIDAS, ACTIVAS, ESPACIALES
ORIENTADAS A OBJETOS, ...
37
Modelo de Datos
Un modelo es un conjunto de conceptos para describir los datos y
la relación semántica entre ellos, dentro de las restricciones que
apliquen en la empresa
La triada MD { G, O, R }
G
Reglas de Generación de objetos
0
Operaciones, elementos de manipulación
R
Restricciones inherentes y explícitas
MD Notación formal matemática para expresar datos y relaciones
Esquema del Modelo de Datos: Es un plano de la Base de Datos
Vista del Modelo de Datos:
Es un sub esquema del M. de D.
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.
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: Direcciones
Nombre x Dirección x
Nombre
Pedro
Martín
Gonzalo
Dirección
Pino 67
Encino 40
Suace 34
Teléfono
Teléfono
229-3456
456-8907
345-6789
entidad: Edades
Nombre x Edad
Nombre
Pedro
Martín
Gonzalo
Teresa
Edad
34
45
23
23
x
Estado Civil
Estado Civil
casado
soltero
soltero
casada
Vistas: relación temporal entre archivos (subesquema)
Relación entre entidades
Nombre
Pedro
Martín
Edad
34
45
Dirección Teléfono
Pino 67
229-3456
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, 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 = Cardinalidad
C
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: es aquella 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

Es una referencia a una clave de otra tabla( siempre
que tengan el mismo tipo de dato). Determina la
relación existente entre dos tablas.
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
reg 1
TASA
25 a–os
Reforma 23 Puebla
reg 2
MESA
15 a–os
Juarez 15
Cholula
reg 3
GISA
20 a–os
Sur 322
Puebla
Nombre
Entidad en 1FN
En el producto
cartesiano todos los
dominios tienen
valores atómicos
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
1
2
3
4
5
6
7
8
9
TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA
Antig
25 a–os
25 a–os
25 a–os
25 a–os
15 a–os
15 a–os
20 a–os
20 a–os
20 a–os
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
Direcciones
Reforma 23
Reforma 23
Reforma 23
Reforma 23
Juarez 15
Juarez 15
Sur 322
Sur 322
Sur 322
No esta normalizada
ya que no existen
relaciones atómicas
entre los dominios.
Anomalía
¿De qué tamaño es
un registro?
Ciudad
Puebla
Puebla
Puebla
Puebla
Cholula
Cholula
Puebla
Puebla
Puebla
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
Cant
400
200
100
50
30
20
20
50
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
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
1
2
3
4
5
6
7
8
9
TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA
Antig
25 a–os
25 a–os
25 a–os
25 a–os
15 a–os
15 a–os
20 a–os
20 a–os
20 a–os
Direcciones
Reforma 23
Reforma 23
Reforma 23
Reforma 23
Juarez 15
Juarez 15
Sur 322
Sur 322
Sur 322
Ciudad
Puebla
Puebla
Puebla
Puebla
Cholula
Cholula
Puebla
Puebla
Puebla
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
Anomalía
Cant
400
200
100
50
30
20
20
50
40
¿Qué pasa cuando dejo de
comprarle a TASA ?
Ent 1
Entidades en 2FN
Las entidades están en 1FN y
además cada dominio o atributo
depende de un sola llave:
Ent 1 Nombre
==> Ant, Dir,Cd
Ent 2 Nombre, Producto
==> Cant
tupla 1
tupla 2
tupla 3
Nombre
TASA
MESA
GISA
Ent 2
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
Antig
25 a–os
15 a–os
20 a–os
Nombre
1
2
3
4
5
6
7
8
9
TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA
Direcciones Ciudad
Reforma 23 Puebla
Juarez 15
Cholula
Sur 322
Puebla
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
Cant
400
200
100
50
30
20
20
50
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
tupla 1
tupla 2
tupla 3
Nombre
TASA
MESA
GISA
Antig
25 a–os
15 a–os
20 a–os
Direcciones Ciudad
Reforma 23 Puebla
Juarez 15
Cholula
Sur 322
Puebla
¿Qué pasa cuando TASA
de ser mi proveedor?
Entidades en 3FN
Ent 1
Las entidades están en 2FN y
además cada dominio o atributo
depende NO transitivamente de
un sola llave:
Ent 1 Nombre
==> Ant, Direcciones
Ent 3 Direcciones
==> Ciudad
Nombre
tupla 1
tupla 2
tupla 3
TASA
MESA
GISA
Ent 3
tupla 1
tupla 2
tupla 3
Antig
25 a–os
15 a–os
20 a–os
Direcciones
Reforma 23
Juarez 15
Sur 322
Direcciones
Reforma 23
Juarez 15
Sur 322
Ciudad
Puebla
Cholula
Puebla
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

Clave
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
Atributos con DFT
Atributos con DF Transitiva
Tercera Forma Normal
(Dependencia Funcional Transitiva)
A
E
F
G
H
I
J
K
S
T
A
E
F
G
H
I
J
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
ajena para el usuario.
Entidades normalizadas
Ent 1
Por otro lado el tamaño de los archivos tiende
a reducirse.
Nombre
tupla 1
tupla 2
tupla 3
Ent 2
Entidad sin normalizar
Nombre
Antig
Direcciones
Ciudad
reg 1
TASA
25 a–os
Reforma 23 Puebla
reg 2
MESA
15 a–os
Juarez 15
Cholula
reg 3
GISA
20 a–os
Sur 322
Puebla
Producto
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
tupla
1
2
3
4
5
6
7
8
9
Ent 3
tupla 1
tupla 2
tupla 3
Antig
TASA
MESA
GISA
25 a–os
15 a–os
20 a–os
Nombre
Producto
TASA
TASA
TASA
TASA
MESA
MESA
TASA
GISA
GISA
Direcciones
Reforma 23
Juarez 15
Sur 322
Cant
clavos
tornillos
tuercas
tachuelas
tuercas
tachuelas
clavos
tornillos
tuercas
Direcciones
Reforma 23
Juarez 15
Sur 322
400
200
100
50
30
20
20
50
40
Ciudad
Puebla
Cholula
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
83
sistema )
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
CODMER
Codigo de mercado
NOMMER Nombre
DIRMER
Dirección
CPOMER
Código postal
CIUMER
Ciudad
CPRMER
Código de Provincia
PROMER
Nombre de la Provincia
TELMER
Télefono
Datos del puesto de un Mercado
CODPTO
Código de Puesto
CIFPTO
Código de Identificación Fiscal
NOMPTO Nombre
NPRPTO
Nombre propietario
Datos de fruta que vende un puesto
CODFRU
Código
NOMFRU Nombre
CMEFRU
Código medida
NMEFRU
Nombre de la medida
STKPTO
Stock en medidad en el puesto
PVEFRU
Precio de venta
Datos de un Almacen que distribuye Fruta
CODALM
Código Almacen
NOMALM Nombre
CIFALM
Código de Identificación Fiscal
CODFRU
Código de la fruta que distribuye
CMEFRU
Código de medida de distribución
STKALM
Stock de fruta en el almacen
PDIFRU
Precio de distribución
Datos de la Factura de un Almacen a un puesto
NUMFAC
Número de factura
FECFAC
Fecha
CODALM
Codigo almecen
NOMALM Nombre Almacen
CIFALM
Código de Identificación Fiscal
CODMER
Codigo de mercado
NOMMER Nombre del mercado
DIRMER
Dirección del mercado
CPOMER
Código de Provincia del mercado
CIUMER
Ciudad del mercado
PROMER
Provincia del mercado
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
CodMer
CodPto
CodFru
CmeFru
NOMMER
DIRMER
CIUMER
CPOMER
CPRMER
PROMER
TELMER
CIFPTO
NOMPTO
NPRPTO
NOMFRU
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
2
3
4
5
6
Determinación de la Entidad (Archivo) perdido
Cargado del último respaldo
Ordenamiento de la bitácora según el archivo
perdido
Lectura de Imágenes nuevas de cada registro de la
entidad en cuestión
Lectura de Imágenes viejas de la bitácora y
corroboración con la imagen en el respaldo
Actualización correspondiente de más antiguo a más
reciente
103
Respaldos
1
2
3
4
5
Respaldar la base de datos BD cuando se llene la
bitácora de uso
Respaldar la bitácora de uso y limpiarla la copia
actual
Se deben mantener copias de la BD y la bitácora en el
sitio
Es recomendable tener una copia adicional en un
lugar ajeno físicamente de la instalación
El tamaño de la bitácora es función del número de
actualizaciones que tenga la base de datos
104
Arranque en Caliente
1
2
3
4
5
Determinación del último punto estable
Lectura de imágenes viejas de los archivos
modificados en el período de inestabilidad del
proceso usando la bitácora de uso
Lectura de imágenes nuevas de la bitácora y
corroboración con la imagen en el archivo
Desactualización de los archivos por medio del
reemplazo de imágenes viejas por nuevas
Aviso a los usuarios para que repitan las
actualizaciones efectuadas durante el período de
inestabilidad
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
Recuperación de
Datos
DML
Lenguaje de
Manipulación de
Datos
DDL
Lenguaje de
Definición de Datos
Comandos
SELECT
Control de
Transacción
COMMIT
ROLLBACK
SAVEPOINT
GRANT
REVOKE
DCL
– Lenguaje de
Control de Datos
INSERT
UPDATE
DELETE
Descripción
Recupera los datos de la base de Datos. Es el comando utilizado
con mayor frecuencia.
Ingresa nuevas filas, modifica filas existentes y elimina filas de
tablas de la base de datos, respectivamente.
CREATE
Crea, modifica y eliminan estructuras de datos desde las tablas.
ALTER
DROP
RENAME
TRUNCATE
Maneja los cambios hechos por las sentencias DML. Los
cambios a los datos pueden ser agrupados en transacciones
lógicas.
Permite o restringe los derechos de acceso a la base de datos
Oracle y a las estructuras dentro de ésta.
SQL
Esquema de Base de Datos
Cursa
1
Alumnos
M
1
M
Efectua
Examenes
M
Pertenece
1
Materias
M
Pertenece
1
Departamentos
Definición de Tablas
Claves Primarias
Alumnos
Númerico
Númerico
Caracteres
Caracteres
Caracteres
Caracteres
Caracteres
Númerico
Númerico
7
3
25
25
25
25
10
2,2
2
Departamentos
CodDepto
Númerico
Nombre Depto Caracteres
3
30
Nlegajo
CodCarrera
Nombre
Apellido
Domicilio
Localidad
Cod. Postal
Promedio
MaterAprob
Exámenes
Nlegajo
Númerico
CodMateria
Númerico
FechaExamen
Date
Nota
Númerico
7
3
2,2
Materias
CodMateria
Númerico
Nlegajo
Númerico
NombreMater Caracteres
CodDepto
Númerico
CodCarrera
Númerico
3
7
30
3
3
Definición de Tablas
Claves Secundarias
Alumnos
Númerico
Númerico
Caracteres
Caracteres
Caracteres
Caracteres
Caracteres
Númerico
Númerico
7
3
25
25
25
25
10
2,2
2
Departamentos
CodDepto
Númerico
Nombre Depto
Caracteres
3
30
Nlegajo
CodCarrera
Nombre
Apellido
Domicilio
Localidad
Cod. Postal
Promedio
MaterAprob
Exámenes
Nlegajo
Númerico
CodMateria
Númerico
FechaExamen
Date
Nota
Númerico
7
3
2,2
Nlegajo
CodMateria
NombreMater
CodDepto
CodCarrera
Materias
Númerico
Númerico
Caracteres
Númerico
Númerico
7
3
30
3
3
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
--- ------------ -------1
Velasquez
5
2
Perez
4
3
Dominguez
3
4
Gonzalez
10
...
Tabla MATERIAS
NLEGAJO
NOMBREMATER
--- -------------- --------50
Sistemas I
50
Contabilidad II
...
50
Matematicas
50
Psicología
CODDEPTO
1
2
3
4
Tabla DEPARTAMENTOS
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;
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_INVENTORY
S_PRODUCT
S_WAREHOUSE
S_CUSTOMER
S_EMP
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
ID
--------10
31
32
33
34
35
41
42
43
44
45
50
*
s_dept;
NAME
REGION_ID
------------------------- --------Finance
1
Sales
1
Sales
2
Sales
3
Sales
4
Sales
5
Operations
1
Operations
2
Operations
3
Operations
4
Operations
5
Administration
1
12 filas seleccionadas.
Ejemplo: Selección Columnas específicas
SQL> SELECT
2 FROM
DEPT_ID
--------50
41
31
10
50
41
42
43
. . .
dept_id, last_name, manager_id
s_emp;
LAST_NAME
MANAGER_ID
------------------------- ---------Etiquetas de Columnas
Velasquez
Ngao
1
Por defecto la etiqueta es el nombre dado a la
Nagayama
1
columna en la definición de la tabla.
Quick-To-See 1
Ropeburn
1
Se puede reemplazar el nombre de la columna con
Urguhart
2
un alias.
Menchu
2
Por defecto, las etiquetas se muestran en
Biri
2
mayúsculas.
25 filas seleccionadas.
Las etiquetas de las columnas tipo carácter o fecha
se justifican a la izquierda dentro de la columna.
Las etiquetas de las columnas tipo número se
justifican a la derecha dentro de la columna.
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
2 FROM
DISTINCT dept_id, title
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
FROM
[ORDER BY
expr
tabla
{columna, expr} [ASC | DESC] ] ;
Donde:
ORDER BYespecifica 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
2 FROM
3 ORDER BY
last_name, dept_id, start_date
s_emp
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
FROM
[WHERE
[ORDER BY
expr
tabla
condicion(es) ]
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
2 FROM
3 WHERE
DEPT_ID
--------42
42
42
dept_id, last_name, salary
s_emp
dept_id = 42;
LAST_NAME
SALARY
------------------------- --------Menchu
1250
Nozaki
1200
Patel
795
Operadores de Comparación
Operador
=
>
>=
<
<=
BETWEEN...AND...
IN (list)
LIKE
IS NULL
Significado
Igual a
Mayor que
Mayor o igual que
Menor que
Menor o igual que
Entre dos valores (inclusive)
Coincide con cualquier valor de la lista
Coincide con un patrón de caracteres
Es un valor nulo
Operadores Lógicos
Operador
AND
Significado
Si ambos componentes de la condición son verdaderos, el resultado también
OR
Si algún componente de la condición es verdadero, el resultado también
NOT
Retorna la condición negada
Operador
<>
NOT nombre-columna =
Significado
No igual a (en todos los sistemas operativos). Hay otras formas de
expresarlo, dependiendo de los sistemas ( ‘!=’ para VAX, UNIX,PC ; ‘^= ‘ o
‘:=’ para IBM)
No igual a
NOT nombre-columna >
No mayor que
Negación de Operadores
NOT BETWEEN...AND... No está entre los valores especificados
NOT IN (list)
NOT LIKE
IS NOT NULL
No está dentro de la lista especificada
No es como la cadena de comparación
No es un valor nulo
Operador BETWEEN
Selecciona las filas que se encuentran dentro de un rango de valores. El rango que
se especifica contiene un valor inferior y otro superior, se debe espcificar primero
el límite inferior del rango. Los valores especificados con el operador BETWEEN
se incluyen.
Ejemplo
Seleccionar los departamentos cuyo numero de región está entre 2 y 4 inclusive.
SQL> SELECT
id, name, region_id
2 FROM
s_dept
3 WHERE region_id BETWEEN 2 AND 4;
ID
--------32
33
34
42
43
44
NAME
REGION_ID
------------------------- --------Sales
2
Sales
3
Sales
4
Operations
2
Operations
3
Operations
4
6 filas seleccionadas.
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 )
128
Solución del SQL
129
Ejemplos de SQL (2)
Asumiendo la existencia de los siguientes archivos (entidades)
130
Solución del SQL (2)
131
Ejemplo Numérico
Se obtienen las siguientes tuplas
Asumiendo estos datos
en las entidades
132
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
133
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)
completada (requiere ser terminada)
Fallida: NO puede ser
Terminada: Se efectúa un ROLLBACK para deshacer el
proceso
Comprometida: Se efectúa un COMMIT para completarla
134
Ejemplo de transacción
135
Bibliografía
 Date C. J. Data Base Systems
 Procesamiento de Bases de datos D Kroenke
136
Bases de Datos
Diseño de Bases para Almacenes
Tablas Normalizadas
Tabla Almacenes
Tabla Mercados
Tabla AlmFru
Tabla Provincias
Tabla Puestos
Tabla Ciudad
Tabla Medidas
Tabla Frutas
Tabla Propietarios
Tabla Almmer
144
Tablas Normalizadas
Tabla PtoFru
Tabla FACTURAS
Esta tabla
está bien
diseñada ¿?
145
Creación de una Base de Datos
146
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.
09/08/2017
14
7
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.

09/08/2017
148
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.
09/08/2017
149
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
ascvo , 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.
09/08/2017
150
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.
09/08/2017
151
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.
09/08/2017
152
Creación de Tablas
153
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.
09/08/2017
154
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.
09/08/2017
155
Tablas: Creación desde el menú

Aparece el siguiente cuadro de diálogo:
09/08/2017
156
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.
09/08/2017
157
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.
09/08/2017
158
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.
09/08/2017
159
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 que
el de la transparencia 32.
 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.

09/08/2017
160
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.
09/08/2017
161
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 .
09/08/2017
162
Tablas:Vista Diseño
• Ahora
veremos el significado de cada propiedad del campo
que nos aparece en la Vista Diseño de nuestra tabla:
09/08/2017
163
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.
09/08/2017
164
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.
09/08/2017
165
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".
09/08/2017
166
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.
09/08/2017
167
Tablas:Vista Diseño

Ya podéis introducir todos los campos que queráis
en la tabla, y definir el tipo de datos que vais
introducir en cada campo.
09/08/2017
16
8
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.
09/08/2017
16
9
Tablas: Tipos de Datos
Valor
Tipo de datos
Tamaño
Texto
Texto o combinaciones de texto y números, así
como números que no requieran cálculos, como
los números de teléfono. Es el predeterminado.
Hasta 255 caracteres o la longitud que
indique la
propiedad Tamaño del campo.
Memo
Estos campos son particularmente adecuados para dotar a
cada registro de la tabla de un lugar para escribir todo tipo
de comentarios. No es necesario definir su longitud, ya que
la misma se maneja de manera automática, extendiéndose a
medida que se le agrega información. El texto allí colocado
no dispone de ninguna posibilidad de formato, ni de carácter
ni de párrafo.
Hasta 65.535 caracteres.
Numérico
Datos numéricos utilizados en cálculos matemáticos.
1, 2, 4 u 8 bytes (16 bytes si el valor
de la propiedad Tamaño del campo
es Id. de réplica).
Fecha/Hora
Valores de fecha y hora.
8 bytes.
Moneda
Valores de moneda y datos numéricos utilizados en cálculos
matemáticos en los que estén implicados datos que
contengan entre uno y cuatro decimales. La precisión es de
hasta 15 dígitos a la izquierda del separador decimal y hasta
4 dígitos a la derecha del mismo.
8 bytes.
09/08/2017
17
0
Tablas: Tipos de Datos
Sí/No
Valores Sí y No, y campos que contengan uno
de entre dos valores (Sí/No, Verdadero/Falso o
Activado/desactivado).
1 bit.
Objeto OLE
Objeto (como por ejemplo una hoja de cálculo
de Excel, un documento de Word, gráficos,
sonidos u otros datos binarios) vinculado o
incrustado en una tabla de Access.
Hasta 1 gigabyte (limitado por el
espacio disponible en disco)
Hipervínculo
Almacena una ruta UNC o una URL.
Hasta 64000 caracteres.
Autonumérico
Número secuencial (incrementado de uno a
uno) único, o número aleatorio que Microsoft
Access asigna cada vez que se agrega un nuevo
registro a una tabla. Los campos Autonumérico
no se pueden actualizar.
4 bytes (16 bytes si el valor de la
propiedad Tamaño del campo es
Id. La réplica).
Asistente para
búsquedas
Crea un campo que permite elegir un valor de
otra tabla o de una lista de valores mediante un
cuadro de lista o un cuadro combinado.
Tamaño igual al del campo clave
principal utilizado para realizar la
búsqueda.
09/08/2017
171
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.
09/08/2017
172
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.
09/08/2017
173
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.
09/08/2017
174
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.
09/08/2017
175
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.
09/08/2017
176
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.

09/08/2017
177
Tablas Reglas de Validación
178
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.
www.urjc.es
09/08/2017
17
9
Tablas: Reglas de validación:



EJEMPLO:
Abrimos la base de datos “Empresa”.
Hacemos clic sobre la tabla “Pedidos”/Diseño.
www.urjc.es
09/08/2017
18
0
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.
www.urjc.es
09/08/2017
18
1
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 “<“.
www.urjc.es
09/08/2017
18
2
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.
www.urjc.es
09/08/2017
18
3
Tablas: Reglas de validación:

Para agregar la regla de validación hacemos clic en
Pegar.

Ahora tenemos nuestra regla de
completa.
Finalmente hacemos clic en Aceptar.

www.urjc.es
09/08/2017
validación
18
4
Tablas: Reglas de validación:

El resultado es el siguiente:
www.urjc.es
09/08/2017
18
5
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
09/08/2017
18
6
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
09/08/2017
18
7
Creación de Relaciones entre Tablas
(Modelo de Datos)
188
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.
09/08/2017
18
9
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.
◦
09/08/2017
19
0
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.
◦
09/08/2017
19
1
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.
09/08/2017
19
2
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í.
09/08/2017
19
3
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.
09/08/2017
19
4
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:
09/08/2017
19
5
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.

09/08/2017
19
6
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.
09/08/2017
19
7
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:
09/08/2017
19
8
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í.
09/08/2017
19
9
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.
09/08/2017
20
0
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.
2.

No puede haber registros en la tabla secundaria que no estén en la primaria.
No se puede borrar un registro de la tabla principal si hay registros en la secundaria.
Para poder exigir integridad referencial en una relación de uno a varios es
necesario que :
1.
2.
El campo relacionado de la tabla principal sea la clave principal.
Los campos contengan el mismo tipo de datos a excepción de que la relación se
establezca entre un campo de tipo Autonumérico y un campo de tipo Numérico,
siempre y cuando este último sea un Entero largo (por lo tanto los dos campos con la
misma longitud: entero largo).
3.
No se pueden relacionar un campo de texto con uno de fecha, o uno numérico con
uno de texto.
Ambas tablas deben pertenecer a la misma base de datos.
4.
09/08/2017
20
1
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.
09/08/2017
20
2
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.
09/08/2017
20
3
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.

09/08/2017
20
4
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.
09/08/2017
205
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).
09/08/2017
20
6
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:
09/08/2017
20
7
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.
09/08/2017
20
8
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.
09/08/2017
20
9
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).
09/08/2017
210
Ejemplo en vb.net
¿Cómo programar un Botón para agregar registros a
una base de datos?
Modelo de Datos
212
Modelo de Datos
213
Modelo de Datos
214
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)
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?
(1)
Vamos a Orígenes de datos y hacemos Click en el botón Nuevo origen de datos
(3)
(2)
(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 MODIFICARY
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 MODIFICARY 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 MODIFICARY 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 BUSCARY, 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 ELIMINARY 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.