Você está na página 1de 14

1

Terminologa:

Entidad: Puede ser una persona:
Una relacin de clientes, de alumnos, de pacientes
Puede ser u objeto:
Una relacin de productos, de medicinas, de tipo de prendas de
vestir, modelos de vehculos, una factura
Puede ser un suceso:
Una transaccin comercial, una transferencia comercial

Dato: Elemento materia prima de la informacin, es elemento individual de un campo, se
identifica por un nombre y tiene un valor especfico, pero pueden abarcar tambin sub
datos como el caso del campo fecha: sub campos: da, mes ao.

Campo:: Es el conjunto de datos de un mismo tipo, como puede ser por ejemplo un
conjunto de nombres, o el campo Notas: que puede contener un valor ya sea este entero
(15) o fraccionario (14.76), pero un solo tipo, en una tabla viene hacer una columna.

Registro: Conjunto de datos pertenecientes a una misma entidad, el registro consta de
campos, cada campo tiene una longitud definida por lo que los registros son de longitud
fija.

Llave de Registro: Se usa como medio de identificacin de los registros, representa un
campo que nos permite diferenciar un registro de otro, su valor en nico, para registro
puede ser el nmero de matrcula, el nmero de DNI, el nmero de factura, o el nmero de
historia clnica de un paciente.

Tabla: Es una coleccin de registros pertenecientes a una misma entidad por ejemplo una
tabla de Productos solamente debe contener datos nicamente referidos a los
productos, una tabla de clientes deber tener nicamente datos de los clientes.
Base de Datos: Es una coleccin integrada de datos almacenados en distintos tipos de
registro llamados Tablas, que estn relacionadas para as poder acceder a todos los
datos, Las tablas y sus relaciones conforman la Base de datos o BD,

TIPOS DE VARIABLES

TIPO COMENTARIO
BOOLEAN Slo admite 2 valores TRUE o FALSE
BYTE admite valores entre 0 y 255
INTEGER admite valores entre -32768 y 32767
LONG
admite valores entre -2.147.483.648 y
2.147.483.647
SINGLE admite valores decimales con precisin simple
TALLER DE DESARROLLO DE SOFTWARE



TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 2

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
DOUBLE admite valores decimales de doble precisin
CURRENCY vlido para valores de tipo moneda
STRING cadenas de caracteres
Variant Admite cualquier tipo de datos
DATE fechas, permite operar con ellas
Declaracin de las variables
DIM: Es la abreviatura de Dimensin, esto reserva espacio en memoria para la
variable cuando se ejecute el programa y permitir a VB que tipo de datos deber guardar
en dicha variable.
EJ : Dim nombre

Declaracin Implcita: (Option Explicit) Declarar variables sin uso del Dim. No obliga a
organizar y listar las variables de antemano.
Si se va a herramientas, opciones y en editor se elige Requerir Declaracin de
Variables. Con esto VB genera un mensaje de error siempre que encuentre una variable
mal escrita o declarada.
Pero hay otra forma que slo es utilizable para 6 tipos. Esta forma de
identificar a una variable nos permite ahorrar tiempo a la hora de escribir cdigo, adems
de tratar de hacer compatible las primeras formas de asignar variables en Visual Basic
(desde Visual Basic 1.0).
Estas formas son extensibles para las variables tipo Integer, Long, Single,
Double, String y Currency.
Integer %
Long &
Single !
Double #
String $
Currency @

De esta forma, podemos escribir el siguiente cdigo:
Private Sub Command1_Click()
Sum% = 3 + 4
Num# = 32 / Sum%
Label1 = Num#
End Sub
En este ejemplo, puede utilizarse, pero es preciso tener un ligero conocimiento de
este tipo de variables para no confundir una variable de tipo Long por otra de tipo Integer
por ejemplo.

Establecimiento del alcance de la variable
Local: Si esta variable acta solamente para un procedimiento o funcin, se declara en el
Procedimiento.
General: Si esta variable se va a utilizar en todo el formulario, se declara en la parte
superior del formulario despus de la declaracin de la clase.



TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 3

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
Global: Si esta variable va a ser usada por varios formularios es decir para todo el
sistema, se declara en un mdulo.

Ciclo de vida del software Describe el desarrollo de software, desde la fase inicial hasta
la fase final. El propsito de este programa es definir las distintas fases intermedias
que se requieren para validar el desarrollo de la aplicacin, Definicin de objetivos: definir
el resultado del proyecto y su papel en la estrategia global.
Anlisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del
cliente y examinar cualquier restriccin que se pueda aplicar.
Diseo general: requisitos generales de la arquitectura de la aplicacin.
Diseo en detalle: definicin precisa de cada subconjunto de la aplicacin.
Programacin (programacin e implementacin): es la implementacin de un lenguaje de
programacin para crear las funciones definidas durante la etapa de diseo.
Prueba de unidad: prueba individual de cada subconjunto de la aplicacin para garantizar
que se implementaron de acuerdo con las especificaciones.
Integracin: para garantizar que los diferentes mdulos se integren con la aplicacin.
ste es el propsito de la prueba de integracin que est cuidadosamente
documentada.
Prueba beta (o validacin), para garantizar que el software cumple con las
especificaciones originales.
Documentacin: sirve para documentar informacin necesaria para los
Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo)
y las actualizaciones secundarias del software (mantenimiento continuo). El orden y la
presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicacin
dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de
desarrolladores.

Modelos de ciclo de vida Para facilitar una metodologa comn entre el cliente y la
compaa de software, los modelos de ciclo de vida se han actualizado para reflejar las
etapas de desarrollo involucradas y la documentacin requerida, de manera que cada
etapa se valide antes de continuar con la siguiente etapa. Al final de cada etapa se
arreglan las revisiones de manera que se puede elaborar bajo dos modalidades y que son
en Cascada y en V Modelo en cascada El modelo de ciclo de vida en cascada comenz a
disearse en 1966 y se termin alrededor de 1970. Se define como una secuencia de
fases en la que al final de cada una de ellas se rene la documentacin para garantizar
que cumple las especificaciones y los requisitos antes de pasar a la fase siguiente:


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 4

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007

Modelo V
El modelo de ciclo de vida V proviene del principio que establece que los procedimientos
utilizados para probar si la aplicacin cumple las especificaciones ya deben haberse
creado en la fase de diseo.

MODELO DE UN DISEO DE BASE DE DATOS
DISEANDO LA BASE DE DATOS:
Un buen diseo de la BD garantiza una aplicacin eficaz, rpida y fcil de realizar su
mantenimiento, el diseo de la BD corresponde a los cimientos de la aplicacin, as si los
cimientos de un edificio estn mal construidos pues al primer temblor se vendr abajo.
Para el correcto diseo de una BD vamos a usar los criterios que plantea el proceso de
Normalizacin. Al aplicar la Normalizacin obtendremos un conjunto de tablas las que en
forma conjunta mantendr los datos de la aplicacin.

Organizacin de los Datos: El Modelo Relacional
Las tablas de tipo relacional, como su nombre lo indica estn relacionadas unas con
otras para as poder obtener los datos de todas las tablas. Una tabla relacional se
muestra como un arreglo basada en FILAS y COLUMNAS, Las filas son llamadas


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 5

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
REGISTROS y las columnas se llaman CAMPOS. A cada registro se le asigna
automticamente un nmero secuencial llamado Nmero de
Registro y a cada campo un Nombre, el nombre del campo.
















Una Tabla presenta dos partes fundamentales: La estructura y los Datos
La Estructura: Es el armazn en el cual se almacenan los registros, para definir una
estructura se debe indicar el Nombre de cada Columna(Campo), el tipo de dato y el
espacio que se necesite para almacenar los datos (ancho de columna).
Los registros de una tabla estn situados generalmente segn como han sido
ingresados, aunque es posible cambiar el orden y ordenarlo como mejor necesitemos ya
sea en forma alfabtica, numrica, o cronolgicamente.
TABLAS DE UNA BASE DE DATOS RELACIONAL: Tomado de EL PROYECTO PEGASUS
VIDEO CLUB DE Cesar Bustamante Gutierrez
DISEO DE LA BASE DATOS

















CAMPO NOTA
REGISTRO N 4
CAMPOS


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 6

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
En el diseo de una Base de Datos lo que se busca es evitar la redundancia de datos, y
que los datos sean pertinentes, con el fin de minimizar el riesgo de perdidas de
informacin que luego podra acabar en un desastre.

TABLA MAL DISEADA:
Cod_Ped Id_Cliente Nombres Telfono Cantidad Precio
P_001 C_004 Carlos 326895 5 17.23
P_002 C_007 Mara 365987 12 48.23
P_003 C_002 Paola 328522 2 13.25
P_004 C_007 Mara 365987 3 78.25
P_005 C_001 Clari s/n 5 15.64
P_006 C_004 Carlos 326895 6 78.26
P_007 C_003 Liliana 951456987 4 45.23
P_008 C_007 Mara 365987 3 23.14
P_009 C_002 Paola 328522 8 45.22
P_010 C_007 Mara 365987 12 19.50
P_011 C_007 Mara 365987 2 3.45
Si tengo ese tipo de tabla me ser difcil actualizarla, suponiendo que necesito cambiar
el telfono del cliente Carlos, para realizarlo tendra que ir registro por registro y
cambiarlo uno a uno,.

Si nos damos cuenta en la tabla no sabemos a que estructura pertenece si es de clientes
o de compra de productos. Mucha de la informacin en la tabla no se relaciona con la
clave primaria, por ejemplo podemos ver que el telfono hace referencia al cliente y no al
pedido, es decir muchos errores.

Para tener una buena Base de Datos sta deber ser Normalizada, es decir aplicar las
reglas de la Normalizacin, por lo menos hasta la quinta forma Normal.

Ejemplo 1: Disearemos nuestra BD para una tienda comercial de Alquiler de Videos

1) Datos: Comenzaremos primero a elaborar una lista de los posibles datos que
utilizaremos en nuestro trabajo, as sea que no los utilicemos o que estn
duplicados a causa de homonimia, ya iremos puliendo estos datos:

Lluvia de ideas:
N de Boleta
Fecha del Alquiler
Nombre del Cliente
Nombre del Empleado
DNI Cliente
Descripcin del Video
Categora
Genero
Precio del Producto
Fue devuelto?
Precio total
Cantidad de Videos
Direccin del cliente





TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 7

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
2) Reconocimiento de Entidades: Las primeras entidades que podemos
observar por mientras son:
Clientes
Videos
Boletas

3) Primera Forma Normal: Nos sugiere reconocer las entidades que participan y
con ellas formar grupos de los datos que les pertenecen:
Clientes
Nombres del Cliente
Documento de Identidad (DNI)
Direccin
Videos
Ttulo del Video
Descripcin del Video
Precio
Genero
Boletas
N de Boleta
Fecha de Emisin
Fue Devuelto?
Precio de Venta

Cada grupo conformar luego una tabla, los datos sern nicos, los llamaremos Tablas
Primarias. As mismo una tabla primaria debe tener un dato que represente a toda la
tabla o grupo y que garantice la unidad al grupo a este dato lo llamaremos Llave Primaria
(Primary Key), Para este dato muchas veces lo tenemos en los datos consignados pero
en otras tendremos que agregarlos, por ejemplo en la Tabla Clientes podemos poner el
Nombre, pero vemos que puede haber sinonimia, he indicado que el campo que identifique
debe ser nico, entonces tenemos el campo Documento de Identidad (DNI), que cumple
perfectamente lo antes citado, pero que pasa si un menor de edad va a nuestro centro
comercial y realiza una compra, bien sabemos que muchos menores de edad no tienen an
el DNI, no podra realizar la compra, en este caso tenemos que crear un campo para
identificacin de la tabla en este caso IdCliente .

Clientes
IdCliente
Nombres del Cliente
Documento de Identidad
Direccin
Telfono del Cliente

Lo mismo en la Tabla Boletas tenemos que agregar el campo del IdCliente para saber a
que cliente le corresponde esa boleta
Videos


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 8

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
IdVideo
Descripcin
Categora
Gnero
Precio
Cantidad
Boletas
IdBoleta
N de Boleta
Fecha de venta
Precio de Venta
Devuelto
IdCliente

4) Segunda Forma Normal: A cada entidad le debe pertenecer los datos
pertinentes, A cada Entidad le pertenece solo sus datos
Clientes
IdCliente
Nombres del Cliente
Documento de Identidad
Direccin
Telfono del Cliente
Videos
IdVideo
Descripcin (El Ttulo de la Pelcula)
Categora * mejor sacar otra tabla por tener datos fijos
Gnero * mejor sacar otra tabla por tener datos fijos
Precio * El precio depende funcionalmente de la categora del
video
Cantidad
Boletas
IdBoleta
N de Boleta
Fecha de venta
Precio * Duplicado
Devuelto
IdCliente
Detalle * que servir para extraer datos para la boleta no tiene llave
primaria (Tabla de enlace)
IdBoleta
IdVideo
Devuelto
Gneros
IdGenero
Descripcin:


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 9

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
Categoras
IdCategoria
Descripcion
Precio
5) Tercera Forma Normal: Hace referencia a todos aquellos datos cuyo resultado se
puede obtener mediante un tipo de calculo basado en datos existentes. Se deberan
eliminar y obtenerlos en tiempo de ejecucin (por ejemplo en una factura el valor del IGV

Categorias:
IdCategoria Text
Descripcin Text
Precio Monetario

Generos:
IdGenero Text
Descripcin Text

Videos:
IdVideo Text
IdCategoria Text
IdGenero Text
Descripcion Text
Stock Nmerico


Boletas:
IdBoleta Text
Fecha Fecha
IdCliente Text

Detalle:
IdBoleta Text
IdVideo Text
Precio Monetario
Devuelto Boolean

Clientes:
IdCliente Text
Nombres Text
Direccin Text
Telfono Text

6) RELACIONES




TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 10

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007


















PRIMER FORMULARIO:
Mantenimiento Clientes: FrmClientes (Clientes.frm)
En un formulario situ un objeto SSTab nmbrelo como SSTabClientes, en la primera
pagina incluya un DBGrid con el nombre dbgClientes, un control Data: dataClientes, un
par de cuadros de texto: txtIdClientes y txtNombres y dos botones de comando:
cmdBuscar y cmdCerrar, distribuya estos objetos de modo que tenga la apariencia
siguiente:

Para la pestaa Detalles:
Se requerir 4 cuadros de texto, nombre a estos como txtCampo (se crear una matriz
de cuadros de texto), incluya un control data dataDetalle y 9 botones de comando


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 11

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
(cmdinicio, cmdAnterior, cmdSiguiente, cmdUltimo, cmdNuevo, cmdEditar, cmdBorrar,
cmdGrabar y cmdCancelar).
El control dataDetalle, deber definir de la forma siguiente
















Habilite la propiedad ToolTipText para controles que no lleven nombre como por ejemplo
Buscar Clientes


En el control SSTabClientes, si en la primera pagina elige un cliente a travs de
grdClientes, al pasar a la segunda pgina para ver los detalles, se deber mostrar los
datos del registro antes sealado.
El procedimiento es el siguiente: se captura el IdCliente en una variable Cdigo, a partir
del control dataClientes. Luego se hace una bsqueda en dataDetalle, como los cuadros
de texto estn asociados a los campos de la tabla Clientes a travs de dataDetalle,
estos se mostrarn automticamente:
El caso inverso, es decir si se selecciona un registro en la pgina de Detalles, al volver a
la primera pgina, se deber luminar el registro antes tratado. La solucin es similar,
vea en el procedimiento el caso Else.
El botn Buscar servir para buscar ya sea un Id o un nombre de cliente, e! resultado se
ver en el control dbgClientes, el cursor iluminar la ocurrencia hallada.

Creacin de una Base de Datos y relaciones en Visual Basic utilizando nicamente
cdigo
9 Tablas: 5 Relaciones

Clientes
Boletas
Vendedores


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 12

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
Detalle
Categora
Productos
Gneros
Auxiliar
Usuarios

Elaborado por Victor Ral Queria Rosado 2007

Insertar el Objeto:
MicroSoft DAO 2.5-3.51/ Compatibility Library



Dim Archivo As String
Option Explicit
Private Sub Crear_BaseDeDatos()

Dim CnnDAO As Database, tabla_1 As TableDef, tabla_n As TableDef, Clientes_Boletas As Relation,
Clientes_Vendedores As Relation, Producto_Detalle As Relation, Producto_Categoria As Relation,
Boleta_Detalle As Relation, Producto_Genero As Relation, Connects As String
On Error GoTo falla
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlOFNOverwritePrompt
CommonDialog1.FileName = App.Path & "\Videos.MDB"
CommonDialog1.Filter = "Base de Datos Acces|*.MDB"
CommonDialog1.ShowSave
Archivo = CommonDialog1.FileName
If Dir(CommonDialog1.FileName) <> "" Then Kill CommonDialog1.FileName

Set CnnDAO = DBEngine(0).CreateDatabase(CommonDialog1.FileName, dbLangGeneral, dbEncrypt)

CnnDAO.Execute "Create table Clientes(IdCliente text(7),Nombres text(60), Direccion text(50),
Telefono text(12), IdVendedor text(7), constraint Llave1 primary key (IdCliente))"
CnnDAO.Execute "Create table Vendedores(IdVendedor text(7),Nombres text(60), Email text(60),
Telefono text(12), Foto text(80), constraint Llave2 primary key (IdVendedor))"
CnnDAO.Execute "Create table Productos(IdProducto text(7),Descripcion text(100),IdCategoria text(7),
IdGenero text(7), Stock numeric, constraint Llave3 primary key (IdProducto))"
CnnDAO.Execute "Create table Generos(IdGenero text(7), Descripcion text(20),constraint Llave4
PRIMARY key (IdGenero))"
CnnDAO.Execute "Create table Categoria(IdCategoria text(7), Descripcion text(20), Precio numeric,
constraint Llave5 Primary key (IdCategoria))"
CnnDAO.Execute "Create table Boletas(IdBoleta text(7), Fecha date, IdCliente text(7), constraint Llave6
Primary key (IdBoleta))"
CnnDAO.Execute "Create table Detalle (IdBoleta text(7), IdProducto text(7), Precio numeric, constraint
Llave7 primary key (IdBoleta))"
CnnDAO.Execute "Create table Auxiliar(IdVideo text(7), Descripcion Text (60), Precio numeric)"
CnnDAO.Execute "Create table Usuarios(Codigo text(10), Usuario Text (20), constraint Llave9 primary
key (Codigo))"

Set tabla_1 = CnnDAO.TableDefs!Clientes
Set tabla_n = CnnDAO.TableDefs!Boletas


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 13

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007
Set Clientes_Boletas = CnnDAO.CreateRelation("ClientesBoletas", tabla_1.Name, tabla_n.Name,
dbRelationUpdateCascade Or dbRelationDeleteCascade)
Clientes_Boletas.Fields.Append Clientes_Boletas.CreateField("IdCliente")
Clientes_Boletas.Fields("IdCliente").ForeignName = "IdCliente"
CnnDAO.Relations.Append Clientes_Boletas

Set tabla_1 = CnnDAO.TableDefs!Vendedores
Set tabla_n = CnnDAO.TableDefs!Clientes
Set Clientes_Vendedores = CnnDAO.CreateRelation("ClientesVendedores", tabla_1.Name,
tabla_n.Name, dbRelationUpdateCascade Or dbRelationDeleteCascade)
Clientes_Vendedores.Fields.Append Clientes_Vendedores.CreateField("IdVendedor")
Clientes_Vendedores.Fields("IdVendedor").ForeignName = "IdVendedor"
CnnDAO.Relations.Append Clientes_Vendedores

Set tabla_1 = CnnDAO.TableDefs!Productos
Set tabla_n = CnnDAO.TableDefs!Detalle
Set Producto_Detalle = CnnDAO.CreateRelation("ProductoDetalle", tabla_1.Name, tabla_n.Name,
dbRelationUpdateCascade Or dbRelationDeleteCascade)
Producto_Detalle.Fields.Append Producto_Detalle.CreateField("IdProducto")
Producto_Detalle.Fields("IdProducto").ForeignName = "IdProducto"
CnnDAO.Relations.Append Producto_Detalle

Set tabla_1 = CnnDAO.TableDefs!Productos
Set tabla_n = CnnDAO.TableDefs!Generos
Set Producto_Genero = CnnDAO.CreateRelation("ProductoGenero", tabla_1.Name, tabla_n.Name,
dbRelationUpdateCascade Or dbRelationDeleteCascade)
Producto_Genero.Fields.Append Producto_Genero.CreateField("IdProducto")
Producto_Genero.Fields("Idproducto").ForeignName = "IdGenero"
CnnDAO.Relations.Append Producto_Genero

Set tabla_1 = CnnDAO.TableDefs!Categoria
Set tabla_n = CnnDAO.TableDefs!Productos
Set Producto_Categoria = CnnDAO.CreateRelation("ProductoCategoria", tabla_1.Name, tabla_n.Name,
dbRelationUpdateCascade Or dbRelationDeleteCascade)
Producto_Categoria.Fields.Append Producto_Categoria.CreateField("IdCategoria")
Producto_Categoria.Fields("IdCategoria").ForeignName = "IdCategoria"
CnnDAO.Relations.Append Producto_Categoria

Set tabla_1 = CnnDAO.TableDefs!Boletas
Set tabla_n = CnnDAO.TableDefs!Detalle
Set Boleta_Detalle = CnnDAO.CreateRelation("BoletaDetalle", tabla_1.Name, tabla_n.Name,
dbRelationUpdateCascade Or dbRelationDeleteCascade)
Boleta_Detalle.Fields.Append Boleta_Detalle.CreateField("IdBoleta")
Boleta_Detalle.Fields("IdBoleta").ForeignName = "IdBoleta"
CnnDAO.Relations.Append Boleta_Detalle
CnnDAO.Close
Set CnnDAO = Nothing

'falla:
End Sub

Private Sub CmdCreaBase_Click()
Call Crear_BaseDeDatos
Dim Rpta As Integer
Rpta = MsgBox("Base de Datos " & Archivo & " Creada con xito Desea Salir?", 4 + 32, "Creacin
de BD")
If Rpta = 6 Then
End
End If
End Sub


TALLER DE DESARROLLO DE SOFTWARE V. RAL QUERIA ROSADO 14

INSTITUTO SUPERIOR TECNOLGICO PBLICO MNB Juliaca 2007

Otro ejemplo de una Base de datos

Você também pode gostar