Capítulo
22.
Bases
de datos y DAO
1.
Defina
Base de Datos, Tabla, Registro y Campo.
Base
de Datos .- Es una
colección de datos organizados de tal forma que puedan ser recuperados y
procesados para generar información, para un propósito especifico.
Tabla .- Es una matriz de datos de dos
dimensiones, que almacena datos de una sola naturaleza, uniforme y completa.
La
tabla puede estar compuesta por una o más columnas, a las que se les
conoce como campos. También puede contener una o más filas, a las que se
les conoce como registros.
Campo .- Los campos (uno o varios) son
los que conforman a una tabla.
Registro .- Es una ocurrencia de la
colección de campos
Al
conjunto de campos que en cantidad mínima, suficiente y necesaria identifican
como único a un registro dentro de una tabla, se le llama clave primaria.
Para
escoger la clave primaria adecuada hay que escoger el campo que identifique
como único a cada registro.
Cuando
dos tablas de una misma base de datos se complementan (guardan una relación)
por medio de campos comunes. Cuando estos campos son los campos primos, o sea,
los campos primos de una tabla se encuentran dentro de otra tabla, estos
conforman una clave externa.
Relación
de integridad .- Por cada registro de la tabla servidora debe existir al menos
un registro en la tabla cliente.
Se
dice que hay Integridad referencial cuando en todos los casos existe
correspondencia entre los registros de
Los
Indices son referencias logicas a la ubicación física de los registros , sobre
la base de un criterio que determina su organización y posición dentro de un
orden. Se utilizan para la localización rapida de registros y para ordenarlos.
Primero
se tiene el programa diseñado para manejar una base de datos, la cual se
encuentra en el almacen de datos de nuestra PC. El motor de base de datos (que
siempre se encuentra entre nuestro programa y el almacen de datos) es el
encargado de convertir las instrucciones del programa en operaciones físicas
del almacen de datos y viceversa.
Lenguaje
de Consultas Estructurado.
DAO
(Objetos de Acceso a Datos).- Es el conjunto de objetos que permiten la
manipulación de datos en Visual Basic.
El
control Data es uno de los dos metodos que proporciona Visual Basic para crear
una interfaz con el motor de base de datos Jet.
El
control Data ofrece una capacidad limitada para tener acceso sin programación a
bases de datos existentes.
Microsoft
Access
Fox
Pro, dBase
En
esta figura se explica la forma jerarquica basica de las clases DAO.
DBEngine
se encuentra en la parte superior de la jerarquia ; este corresponde al motor
de base de datos Microsoft Jet. El objeto DBEngine es el unico objeto que no
esta contenido en ningun otro.
Después
de DBEngine, todos los objetos hacia abajo son de colección, es decir, pueden
contener una o mas ocurrencias.
El
esquema nos muestra después una colección llamada workspaces, que contiene uno
o mas objetos workspace. Cada objeto workspace tiene una colección Databases,
la cual contiene uno o mas objetos Database. Cada objeto Database tiene una
colección de TableDefs, RecordSets y Relations.
Cada
TableDefs contiene uno o mas objetos TableDef. Cada TableDef tiene una
colección de Fields y una de Indexs. Cada objeto Index tiene una colección de
Fields.
Cada
objeto RecordSet tiene una colección de Fields y cada objeto Relation tiene una
colección de Fields.
La
jerarquia obliga a que si no hay DBEngine, no hay Workspace y asi
sucesivamente.
DDL (Lenguaje de Definición de Datos).-
Consta de las propiedades y metodos utilizados para definir y crear la propia
base de datos, incluyendo sus tablas, campos, relaciones, etc.
DML (Lenguaje de Manipulación de
Datos).- Consta de las propiedades y los metodos utilizados para escribir
aplicaciones que manipulan y tienen acceso a base de datos existentes. Esto
incluye características para consultar la base de datos, desplazarse a traves
de sus tablas, realizar actualizaciones y agregar o eliminar registros.
Capítulo
23.
Lenguaje
de Definición de datos y DAO
1.
Explique
como se usa DDL para crear una estructura de Base de Datos (en 9
pasos).
Habilitar DAO (DBEngine)
Definir
una base de datos (Database)
Definir
un espacio de trabajo (Workspace) para la base de datos
Realizar
las definiciones de tablas (TableDef)
Realizar
las definiciones de campos (Field)
Realizar
las definiciones de indices (Index)
Realizar
las definiciones de las relaciones (Relation)
Asignar
propiedades especificas de la base de datos
Integrar
de la base de datos
Workspace
es un objeto que se genera a partir de una colección de Workspaces.
TableDefs(0).Fields("IDVenta")
Es
lo mismo que:
TableDef.Fields!IDVenta
Las
variables objeto son las variables que almacenan objetos en lugar de datos.
Set
NombreVariable = ObjetoAAsignar
Esta
instrucción le asigna a una variable cierto objeto.
Dim fldIDVenta
As Field
Para
utilizar el CreateDatabase es necesario tener definido el workspace
.CreateDatabase(Nombre,
Localidad, Opciones)
Nombre
es el nombre del archivo a crear.
Localidad
es la constante que especifica la localidad
Opciones
son las cte’s suma de ellas, que definen particularidades de la base de datos.
Este
metodo crea tablas dentro de Database. Su sintaxis es :
.CreateTableDef
(Nombre)
Donde Nombre es el
nombre de la tabla a crear.
Para
poder utilizar este metodo necesita haber creado primero una tabla o un campo.
La sintaxis de este metodo se muestra a continuación:
.CreateIndex(Nombre)
Este
metodo se encarga de establecer las relaciones entre tablas. Su sintaxis es:
.CreateRelation(Nombre,
TablaServidora, TablaCliente, Atributo)
Sirve
para realizar multiples definiciones a las propiedades de un mismo objeto.
Se
utiliza para agregar o juntar una variable objeto con otra.
Required
= Requerido
Default
value = valor por defecto
Allow zero length = conceder longitud
cero
Foreign
table = tabla extranjera o externa
Foreign
name = nombre extranjero
For
each = para cualquier
Los conceptos de reingeniería e ingeniería inversa están
ligados al desarrollo de software a gran escala, donde una mejora en proceso de
este desarrollo supone un aumento en la competitividad de la empresa.
Aunque hay que tener en cuenta que esta mejora es, en general
a largo plazo (normalmente de uno a dos años) ambas actividades, están
orientadas a automatizar el mantenimiento de aplicaciones. Esta es una tarea
que consume gran cantidad de recursos, por lo que cualquier reducción en el
tiempo y recursos empleados en ella supone una importante mejora en la
productividad del proceso. Este es el principal objetivo de la reingeniería. Se
trata, de analizar el código o el diseño actual y modificarlo con la ayuda de
herramientas automáticas para traducirlos a códigos mas estructurados, y más
eficientes.
Dentro de la reingeniería, el proceso de pasar del código a
una descripción de mas alto nivel es lo que se denomina:
Ingeniería inversa.
La reingeniería e ingeniería inversa prolongan la vida del
software.
Dado que es una labor estratégica, es conveniente conocer
cuando conviene realizar la tarea de reingeniería para una aplicación y cuándo
es más rentable sustituirla e implementar una nueva. Las aplicaciones para el
primer paso, son aquellas en la que se produce las siguientes situaciones:
·
Fallos
frecuentes, que son difíciles de localizar
Desarrollo de software con y para reuso
El desarrollo de software con reúso consiste en desarrollar
una aplicación usando software ya existente. Cualquier profesional lo utiliza
El desarrollo de software para reuso consiste en la
construcción de un sistema con la intención de reutilizar partes de él en
futuros desarrollos. Con software a gran escala, un buen profesional con
experiencia puede desarrollarlo.
Estudios realizados determinan que la práctica de
reutilización del software en un proyecto aumenta la productividad durante el
desarrollo de dicho proyecto.
Sin embargo, la reutilización del software no cubre solo el
reuso de códigos, abarca todo un amplio de posibilidades en los diferentes
niveles, metodología, ciclos de vida, planes del proyecto, especificaciones de
requisitos, diseños, arquitectura software, planes de validación, juegos de
prueba y documentación.
Capítulo
24. Lenguaje de Manipulación de Datos y DAO.
1.
Cuáles
son los dos tipos de validaciones que puede tener una aplicación que actualiza
bases de datos.
Actualizaciones
a nivel tabla y a nivel base de datos.
OpenDatabase, OpenRecordset y Close.
AddNew, Edit, Update y Delete.
Almacena
la dirección en la cual se encuentra el archivo a usar.
OpenDatabase(Archivo)
Ejemplo:
Dim dbBase As Database
dbBase = OpenDatabase(App.Path &
"\" & "Ventas.mdb")
OpenRecordset(Tabla,Tipo)
Ejemplo:
Dim dbBase As Database
Dim rstVendedor As Recordset
dbBase = OpenDatabase(App.Path &
"\" & "Ventas.mdb")
Set rstVendedor =
OpenRecordset("Vendedor")
Table -> dbOpenTable
Dynaset -> dbOpenDynaset
Snapshot -> dbOpenSnapshot
Forward-only -> dbOpenForwardOnly
Dynamic
-> dbOpenDynamic
Cuando
el Recordset esta en modo de edición, Visual Basic permite modificar el
contenido del registro activo.
El motor de base
de datos permite apuntar a un registro a la vez, por cada Recordset que se
tenga abierto; al registro que esta apuntado se le conoce como registro activo.
Permite
agregar un registro a un Recordset, estableciéndolo como registro activo y
dejándolo en modo de edición.
Sirve
para poner en modo de edición al registro activo.
Transfiere
los cambios realizados en el registro activo y en el Recodset al almacen de
datos.
Modifica
el almacen de datos de tal forma que el registro sea eliminado.
AddNew y Edit.
El
metodo Seek permite buscar una clave dentro de un archivo, modificando la
propiedad NoMatch en caso de que se encuentre o no la clave buscada.
La
propiedad Index permite definir cual es el indice sobre el que se hara la
búsqueda.
La
propiedad NoMatch determina si la ultima búsqueda realizada no encontro
ocurrencias coincidentes (True). En caso de que la búsqueda termine con
resultados satisfactorios, el valor de esta propiedad en (False). Esta
propiedad se actualiza en tiempo de ejecución.
Recordset.MoveFirst
Recordset.MoveLast
Recordset.MovePrevious
Recordset.MoveNext
Seek
solo busca claves, mientras Find no tiene esa restricción.
El
Recordset debe ser de tipo Dynaset.
FindFirst
FindNext
FindPrevious
FindLast
La
forma de evaluar el éxito de los metodos Find es similar a Seek
Ejemplo:
Dim dbBase As Database
Dim rstVendedor As Recordset
dbBase = OpenDatabase(App.Path &
"\" & "Ventas.mdb")
Set rstVendedor =
OpenRecordset("Vendedor", dbOpenDynaset)
RstVendedor.FindFirst "IDVendedor
> 100"
If rstVendedor.NoMatch Then
MsgBox
"No hay un ID mayor a cien"
Else
MsgBox
"Ya hay un ID mayor a cien"
End If
BdBase.Close
Se
presenta cuando intenta definir un Recordset vinculándolo a una tabla o
consulta que no existe definida en el almacen de datos. Para solucionarlo,
antes de realizar asignaciones a las referencias al almacen de datos ,
asegurese de estar en modo de edición
|