Capítulo 22

Bases de datos y DAO.  

Cuestionario del capítulo  

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 específico.

Tabla: Puede visualizarse como una matriz de datos de dos dimensiones, que almacena datos de una sola naturaleza, uniforme y completa.

Registro: Es una ocurrencia de la colección de campos. Vienen a ser las filas que están contenidas dentro de las tablas.

Campo: Se les llaman también atributos. Son las columnas de las que está compuesta la tabla.

2.Explique que es una Clave primaria y como debe escogerse.

Es el conjunto de campos que en cantidad mínima, suficiente y necesaria identifican como único a un registro dentro de una tabla. Debe tomarse en cuenta que el nombre de las personas, al igual que su apellido, no son una buena opción para clave primaria, ya que podría darse el caso de que se repitieran; también hay que tener cuidado de no excederse del número mínimo suficiente y necesario de campos.

3.Explique que es una Clave Externa.

Se da cuando los campos primos de una tabla se encuentran dentro de otra tabla, y esta clave nos permite acceder a ellos.

4.Explique que es la Integridad referencial.

Se da cuando en todos los casos existe correspondencia entre los registros de las tablas que tienen relación de integridad.

5.Explique que es un  Índice.

Son referencias lógicas 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 rápida de registros, y algunas veces, para ordenar los registros.

6.Explique la figura 22.4.

La interfaz del usuario, que es lo que el usuario ve y con lo que interactúa,  recibe datos válidos para la base de datos y acepta los comandos o solicitudes que el usuario hace mediante la manipulación de los formularios; dichas solicitudes no se realiza sobre el archivo físico de la base de datos, sino a través del motor de base datos, que es el intermediario que realiza las operaciones solicitadas en el almacén de datos y devuelve el resultado deseado a la aplicación.

7.Defina las siglas de SQL.

Lenguaje de Consultas Estructurado.

8.Defina las siglas de DAO y Explique para que sirve.

Objetos de Acceso a Datos. Es una colección de clases de objetos que proporcionan las propiedades y los métodos que permiten llevar a cabo las operaciones necesarias para administrar un sistema basado en el modelo relacional. Esto incluye funciones para crear bases de datos, definir tablas, campos e índices, establecer relaciones entre tablas y desplazarse por la base de datos, modificar su contenido y crear consultas sobre ella.

9.Explique para que sirve el Control Data.

Ofrece una capacidad limitada para tener acceso sin programación a bases de datos existentes.

10.Defina las siglas de ODBC.

Conectividad Abierta de Bases de Datos.

11.Mencione que paquetes usan archivos con extensión.mdb

Bases de datos nativos de Visual Basic o Microsoft Access.

12.Mencione que paquetes usan archivos con extensión.dbf

FoxPro/dbBase.

13.Explique la figura 22.5 indicando el significado de sus elementos.

El objeto DBEngine se encuentra en la parte superior de la jerarquía y corresponde al motor de base de datos Microsoft Jet. Después de  él, todos los objetos hacia abajo son de colección. Existe una colección llamada Workspaces (espacios de trabajo), que contiene uno o más objetos Workspace. Cada objeto Workspace tiene una colección Database (bases de datos), la cual contiene uno o más objetos Database. Cada objeto Database tiene una colección TableDefs (definición de tablas), que contiene uno o más objetos TableDef, y así sucesivamente.

14.Defina las siglas de DDL y Explique para que sirve.

Lenguaje de Definición de Datos. Consta de las propiedades y métodos utilizados para definir y crear la propia base de datos, incluyendo sus tablas, campos, relaciones, etcétera. Constituye el esquema de la base de datos.

15.Defina las siglas de DML y Explique para que sirve.

Lenguaje de Manipulación de Datos.  Consta de las propiedades y los métodos utilizados para escribir aplicaciones que manipulan y tienen acceso a bases de datos existentes. Esto incluye características para consultar la base de datos, desplazarse a través de sus tablas, realizar actualizaciones y agregar o eliminar registros.

Capítulo 23

Lenguaje de Definición de datos y DAO 

Cuestionario del capítulo  

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 índices (Index)

- Realizar las definiciones de las relaciones (Relation)

- Asignar propiedades específicas de la base de datos

- Integrar de la base de datos

2.Explique la diferencia entre Workspace y Workspaces.

Si el objeto sobre el que se basan otros objetos es Workspace, la colección que se genere a partir de dicho objeto será Workspaces; el último término está en plural, ya que indica que son varios los objetos que existen en la colección.

 3.Explique las dos formas en que podemos hacer referencia a IDVenta.

Podemos identificarla por la “ruta de acceso” completa a través de las colecciones anidadas a las que pertenece, utilizando el separador “.” (punto); o también podemos identificarla a través de una cadena correspondiente a la propiedad Name del objeto Field, que pertenece a la colección. Al hacer referencia explícitamente a un miembro de la colección podemos utilizar el separador “!” (signo de admiración) en lugar del punto.

4.Explique que es una Variable objeto.

Son las variables que almacenan objetos en lugar de datos. Debe declararse como un objeto, no como un dato.

5.Explique la sintaxis de la instrucción Set.

Set NombreVariable   =  ObjetoAAsignar

Se realiza la asignación de un objeto a una variable.

6.Explique  la instrucción Dim para una Variable objeto.

Dim fldVenta As Field

Se habilita una variable de nombre fldIDVenta para que maneje un objeto de tipo Field.

7.Explique el método  CreateDatabase.

El método CreateDatabase crea un objeto Database. Sus argumentos básicos son:  Nombre, Localidad, Opciones. Donde Nombre es el nombre del archivo de base de datos a crear; y Localidad es la constante que especifica la localidad que tendrá la base de datos.

8.Explique el método  CreateTableDef.

El método CreateTableDef crea un objeto TableDef. Su argumento básico es Nombre, el cual se refiere al nombre de la tabla a crear. Debe ser un nombre de tabla válido para el controlador de bases de datos que se esté utilizando.

9.Explique el método  CreateIndex.

El método CreateIndex crea un objeto Index. Sus argumentos básicos son: Nombre, Tipo, Tamaño; donde Nombre se refiere al nombre del campo a crear. Debe ser un nombre de campo válido. Tipo es el tipo de datos que tendrá el campo.

10.Explique el método  CreateRelation.

Este método crea un objeto Relation. Sus argumentos básicos son: Nombre, TablaServidora, TablaCliente, Atributo. Nombre es el nombre de la relación. TablaServidora es el nombre de la tabla secundaria de la relación, la que se accede a través de la clave externa. TablaCliente es el nombre de la tabla primaria de la relación, la que posee la clave externa. Atributo es la constante o suma de ellas, que determinan el comportamiento de la relación.

11.Explique para que sirve el bloque With... End With.

Para simplificar el código cuando es necesario realizar múltiples definiciones a las propiedades de un mismo objeto.

12.Explique para que sirve el método Append.

Sirve para integrar a la base de datos un objeto cuando es asociado a su objeto padre a través de este método.

13.Traduzca:  Required, Default value, Allow zero lenght, Foreign table, Foreign name, For each.

Required: Requerido.

Default value: valor predeterminado.

Allow zero length: Longitud permitida cero. 

Foreign table: tabla foránea.

Foreign Name: nombre foráneo.

For each: Para cada uno.

14.Investigue y explique que significa Ingeniería inversa.

Se le conoce así en el terreno computacional, al hecho de obtener a partir de un producto final (base de datos, programa ejecutable) un producto originador de éste (modelo de datos, código fuente).

Capítulo 24

Lenguaje de Manipulación de Datos y DAO.

Cuestionario del capítulo  

1.Cuáles son los dos tipos de validaciones que puede tener una aplicación que actualiza bases de datos.

Validaciones a nivel tabla y validaciones a nivel base de datos.

2.Mencione los 3 métodos disponibles en DAO, para realizar las tareas de apertura y cierre de bases de datos.

Open Database, OpenRecordset y Close.

3.Mencione los 4 métodos disponibles con DAO, para realizar tareas de escritura de datos.

AddNew, Edit, Update y Delete.

4.Qué almacena la directriz App.Path

El archivo de base de datos para su manipulación.

5.Mencione la sintaxis de OpenDatabase, y escriba un ejemplo.

OpenDatabse(Archivo)

Dim dbBase As Database

dbBase= OpenDatabase(App.Path &  “\” &  “Ventas.mdb”)

6.Mencione la sintaxis de OpenRecordset, y escriba un ejemplo.

OpenRecordset(Tabla, Tipo)

Dim dbBase As Database

Dim rstVendedor As Recordset

Set dbBase = OpenDatabase(App.Path & “\” & “Ventas.mdb”)

Set rstVendedor = OpenRecordset(“Vendedor”)

7.Mencione los 5 tipos de RecordSet disponibles en DAO.

Table, Dynaset, Snapshot, Dynamic y Forward-only.

8.En qué consiste el modo de edición.

Cuando Visual Basic permite modificar el contenido del registro activo cuando se trabaja con Recordset.

9.Qué es el registro activo.

Dado que el motor de base de datos permite apuntar a un registro a la vez, por cada Recordset que se tenga abierto; se le llama registro activo al registro  al que se  está apuntando.

10.Mencione para qué sirve el método AddNew.

Se encarga de agregar un registro en blanco al Recordset, mantiene el registro nuevo como registro activo y lo deja en modo de edición.

 11.Mencione para qué sirve el método Edit.

Se encarga de poner en modo de edición al registro activo.

12.Mencione para qué sirve el método Update.

Transfiere los cambios realizados en el registro activo y en el Recordset al almacén de datos.

13.Mencione para qué sirve el método Delete.

Modifica el almacén de datos de tal forma que el registro activo sea eliminado.

14.Qué métodos de escritura de datos tienen implícito el modo de edición.

Debido a que hay tareas que trabajan directamente con el almacén de datos, si un método no trabaja con el Recordset, no requiere entrar en modo de edición.

15.Explique para qué sirven las propiedades Index y NoMatch, y el método Seek.  

Index: Permite definir cuál es el índice sobre el que se hará la búsqueda. Dependiendo de la formación del índice que se seleccione, será el número de valores que se especificarán para la búsqueda, así como el tipo de datos que estos tienen.

NoMatch: Determina si la última búsqueda realizada no encontró ocurrencias coincidentes (True). En caso de que la búsqueda termine con resultados satisfactorios, el valor de esta propiedad es (False). Esta propiedad se actualiza en tiempo de ejecución.

Seek: Permite buscar una clave dentro de un archivo, modificando la propiedad NoMatch en caso de que se encuentre (False) o no (True) la clave buscada.

16.Mencione los 4 métodos para movimiento entre datos.

MoveFirst, MoveLast, MovePrevious y MoveNext.

17.Cuál es la diferencia entre búsquedas utilizando Seek y Find.

Que Seek busca un determinado registro a partir del conocimiento de su clave; por lo tanto, cuando realizamos búsquedas no basadas en claves e índices podemos utilizar Find.

18.Qué tipo de RecordSet se requiere para realizar búsquedas utilizando Find.

El Recordset debe ser de tipo Dynaset.

19.Mencione las 4 variantes de métodos Find.

FindFirst, FindNext, FindPrevious y FindLast.

20.Explique la sintaxis de los métodos Find, y escriba un ejemplo.

La forma de evaluar el éxito de los métodos Find es similar a Seek; la propiedad NoMatch indicará  si se encontró (False) o no (True) una coincidencia.

Dim dbBase As Database

Dim rstVendedor As Recordset

   Set 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

dbBase.Close

 21.Si trabajando con DAO le aparece un error que dice Update o CancelUpdate sin AddNew o Edit, qué puede estar sucediendo y cómo se puede solucionar.

Se presenta cuando intenta asignar valores a una referencia de campo en un Recordset, sin que se encuentre en modo de edición, ya sea por la aplicación de AddNew o de Edit. La solución es que, antes de realizar asignaciones a las referencias de campo en un Recordset, asegúrese de estar en modo de edición.