Diseño Base De Datos INFORME PROYECTO FINAL
David Castro 200960520006
12/122015
Diseño Base De Datos
Diseño Base De Datos INTRODUCCION
El siguiente informe es elaborado para dar a conocer el procedimiento que se realizó para crear el motor de base de datos de un sistema contable. Es importante mencionar que previo a realizar el proyecto se investigó sobre la Contabilidad empresarial y dicha información y términos se detallaran en el informe. También se muestra la lógica que se utilizó, la creación de las tablas donde se guardaran los datos, la determinación que se dio para la relación entre las tablas, las llaves locales y foráneas, las distintas funciones que se realizaron para ingresar, modificar y realizar operaciones lógicas con los datos. También cuenta con un cuadro donde muestra el código que pertenece a cada tipo de cuenta, muestra imágenes desde el motor de base de datos con el resultado al momento de llamar una función, entre otras cosas. Espero que dicho informe sea de utilidad para todo aquella persona que dese saber no solo de cómo crear un sistema contable si no también como crear bases de datos en el gestor ostgre!"#.
David Castro
2
Diseño Base De Datos
Contenido $%T&'()CC$'%................................................................................................................. 2 Conceptos........................................................................................................................... 4 Contabilidad..................................................................................................................... 4 Términos Contables............................................................................................................ 4 !istema Contable................................................................................................................... 5 Elaboración del !istema Contable .............................................................................................. 6 Tabla Cuenta..................................................................................................................... 7 Tabla Tipo........................................................................................................................ 8 Tabla %ivel....................................................................................................................... 8 *&T$(* E+C*E-*('.................................................................................................. 9 Tabla +oneda..................................................................................................................10 *&T$(* (ET*##E........................................................................................................ 10 (iagrama de &elación....................................................................................................... 11 ")E&............................................................................................................................ 12 #/g!"#...................................................................................................................... 12 Tablas........................................................................................................................... 12 ##*0E! 1'&*%E*!.......................................................................................................14 1)%C$'%E!.................................................................................................................. 14 Conclusión........................................................................................................................ 18
David Castro
3
Diseño Base De Datos
Conceptos Contabilidad #a contabilidad es una disciplina que se encarga de estudiar, medir y analizar en forma teórico2 cient3fica la realidad económica, financiera, social y ambiental de una empresa u organización, con el fin de interpretar las situaciones económicas que se derivan de transacciones monetarias, facilitando la toma de decisiones encaminadas hacia el me4oramiento de la productividad, gestión de la empresa u organización, la responsabilidad con el impacto ambiental y el impacto de bienestar social en la comunidad de la que se beneficia la entidad económica en la obtención de utilidad 2 ganancia, presentando la información contable previamente registrada de manera sistemática seg5n un modelo contable determinado, está información es 5til para los distintos grupos de interés que rodean la empresa u organización.
Términos Contables 67 Activo: Cualquier cosa con valor comercial, de cambio pose3da por un individuo o entidad. 87 Activo circulante o corriente: *ctivo de una empresa que razonablemente puede esperarse que sean convertido en dinero vendidos o consumidos a lo largo del ciclo normal 97 de operaciones. :7 Activo fijo: El de ciclo largo destinado a la cantidad productiva mas que a la reventa. $ncluye la planta el equipo y el activo intangible. ;7 Asiento de cierre: *siento de diario realizado al final de un periodo contable para cerrar todas las cuentas de ingresos, gastos y otras cuentas del periodo. <7 Acreditar: &egistrar un crédito mediante un asiento de contabilidad. =7 Balance eneral: Estado de la situación financiera de cualquier unidad económica, que >7 muestren en un momento determinado el activo, al costo, al costo de preciado o a otro valor indicado. ?7 Capital: *ctivos netos de una empresa ! sociedad o figura seme4ante, incluyendo 6@7 la inversión original y todas las ganancias y beneficios sobre la misma. Cantidad invertida en la empresa. 667 Cuenta: &egistro de todas las transacciones y de la fecha de cada una de ella que afecta una fase particular de una empresa. !e eApresa en forma de cargo y abonos evaluados en términos monetarios y mostrando en saldo actuar si eAiste. 687 Costo: 0alor cedido por una entidad para la obtención de bienes o servicios. Todos los gastos son costos pero no todos los costos son gastos. 697 Crédito: arte de un asiento registrado en el lado derecho del diario de la cuenta 6:7 mayor. 0entas o compras acompaBadas de una promesa de pago posterior a la fecha en que se realizan. 6;7 "stado financiero: alance general, un estado de ingresos o resultados7D un estado de fondo o cualquier estado auAiliar u otra presentación de datos financieros derivados de 6<7 los registros de contabilidad. 6=7 #asivo: #os fondos que debe un banco. El pasivo más grande para un banco son los depósitos de sus clientes. 6>7 #asivo Circulante: arte del pasivo que vence antes de un aBo. $ncluye proveedores, 6?7 hacienda p5blica, seguridad social y acreedores bancarios o varios a cortó plazo. 8@7 #asivo fijo: Todas la deudas que no vencen dentro del periodos fiscal subsiguiente por e4emplo hipotecas, bono en circulación7 867 Capital contable: total de las participaciones que aparece en el registro de contabilidad representado en interés del propietario.
David Castro
4
Diseño Base De Datos 887 Capital social: Capital aportado por accionista para constituir el patrimonio social quien les otorga sus derechos sociales. 897 Capital suscrito: El aportado por los socios. +arca la verdadera responsabilidad de los accionistas. 8:7 Capital paado: Cantidad total en efectivo, en propiedades y en servicios que aportan a una corporación o sociedad sus accionistas y que generalmente constituye una partida importante en el balance general. 8;7 Cuentas por paar: asivo representado de la cantidad que debe un individuo o empresa a un acreedor por las adquisiciones de mercanc3a o servicios, basándose en un sistema de cuenta corriente o crédito a corto plazo. 8<7 Cuentas por cobrar: #as que se adeudan a una empresa por las ventas de mercanc3a, asándose en un sistema de cuentas corrientes. Inventario: +ateria prima y materiales, abastecimientos o 27) !uministros, productos terminados y en procesos de fabricación y mercanc3a en eAistencia, en tránsito, en depósito o consignada en poder de terceros.
$istema Contable
)n sistema contable, son todos aquellos elementos de información contable y financiera que se relacionan entre s3, con el fin de apoyar la toma de decisiones gerenciales de una empresa, de manera eficiente y oportunaD pero esta información debe ser analizada, clasificada, registrada #ibros correspondientes (iario, mayor, *uAiliares, etc.7 y resumida Estados financieros7, para que pueda llegar a un sin n5mero de usuarios finales que se vinculan con el negocio, desde los inversionistas o dueBos del negocio, hasta los clientes y el gobierno. or lo tanto, el sistema contable, debe a4ustarse plenamente a las necesidades de la empresa, considerando, el giro del negocio y su estrategia competitiva, que permita estandarizar procesos, definir estructuras de costos y por ende, presentar una información contable estandarizada que facilite su interpretación, una eficiente toma de decisiones y que pueda procesarse para realizar los diferentes análisis financieros del negocio.
David Castro
5
Diseño Base De Datos
"laboraci%n del $istema Contable ara la elaboración se utilizó el gestor de base de datos #ostre$&l y se realizó mediante los siguientes pasos Creación de una base de datos llamada royecto y las tablas Cuenta, +oneda, %ivel, artidaFdetalle, artidaFEncabezado y Tipo
David Castro
6
Diseño Base De Datos Tabla Cuenta (entro de esta tabla se guarda todos los datos necesarios para documentar una cuenta, para saber el tipo de una cuenta se crearon las tablas Tipo y %ivel con los datos siguientes
CU"NTA$ CODI'O
TI#O
CODI'O(NI)"*
1001
100
ACTIV O
NI)"*
1002
1003
2001 200
PAIV O
CAPIT A"
3000
Fijo
Cargos diferidos
Circulante
2002 2003
300
Circulante
Fijo Cr!ditos diferidos
Ca#ital
D"$CRI#CION
Caja Bancos Clientes Documentos or co!rar Deudores Diversos "lmac#n $%uio de o&cina $di&cios 'errenos $%uio de rearto (atentes marcas De*sitos en +arant,a Deudores -iotecarios "cciones !onos valores (aeler,a art,culos escritorio (roa+anda u!licidad (rimas de /e+uros adelantados astos de instalaci*n entas anticiadas ntereses a+ados or anticiado (roveedores "creedores muestos or a+ar Documentos or a+ar Documentos or a+ar a lar+o lao "creedores -iotecarios entas co!radas or adelantado ntereses co!rados anticiadamente entas Costo de ventas astos de entas astos de "dministraci*n astos roductos &nancieros tros +astos roductos muesto so!re la renta (#rdidas +anancias Caital
David Castro
7
Diseño Base De Datos *demás del código, el nivel y el tipo la tabla cuenta con el campo %ombre que detalla el nombre de la cuenta y una descripción. ara ingresar los datos a esta tabla se creó una funci%n llamada validar_monto aba4o se detalla el query7 .
Tabla Tipo Esta tabla solo contiene el código del tipo de cuenta y la descripción ya sea *ctivo, asivo o Capital está relacionada con la tabla Cuenta mediante el campo codigoFtipo, esta relación ayuda a determinar de qué tipo de cuenta es la cuenta y si el monto es debe o haber
Tabla Nivel En esta tabla se detalla el nivel del monto diferidos, capital.
ya circulante, fi4o, cargos diferidos, fi4o, créditos
Está relacionada con la tabla Cuenta mediante el campo CodigoFnivel, en el campo de descripción esta detallado las diferentes transacciones para cada nombre.
David Castro
8
Diseño Base De Datos
#os query de llaves foranes se detalla aba4o
#ARTIDA "+CAB",ADO Esta Tabla es una de las más importantes del sistema ya que en ella se realizan las partidas diarias de la contabilidad, en ella se guarda el n5mero de partida que inicia desde 6@@ este campo se programó mediante un checG, el código de la cuenta con esto nos indica que está relacionada con la tabla Cuenta mediante este campo, el código de tipo cuenta dato proporcionado por la tabla cuenta, la fecha en que se está realizando la partida, el concepto, el código de moneda este está relacionado con la tabla moneda, el monto, la conversión de la moneda, el debe, el haber y el saldo total. ara realizar el ingreso de datos en esta cuenta se creó una función llamada actualizar_emcabezadoque además de ingresar datos, realiza la validación del monto para determinar el debe y el haber y también realiza la conversión de la moneda seg5n sea el tipo de la moneda dato guardado en la tabla moneda.
David Castro
9
Diseño Base De Datos Tabla +oneda En esta tabla se detalla el tipo de moneda, se ingresó solo cuatro tipo de monedas las más utilizadas, #empira, Euro, (ólar y eso, también cuenta con la tasa de cambio que ayuda a realizar la conversión en la tabla #ibro (iario, dicha relación está hecha por el campo codigoFmoneda
#ARTIDA D"TA**"
unto a la ta!la artida de enca!eado esta ta!la tam!i#n es la ms imortante a %ue a%u, se realian las oeraciones de todo el sistema conta!le se in+resan las artidas se cuadran toda esta oeraci*n se realia solo con una unci*n llamada ingresar_detalle esta unci*n como su nom!re lo dice realia el in+reso de cada artida a cuadrar el monto a sea de!e o -a!er automticamente se o!tiene el resultado se coloca en la celda saldo deudor o acreedor se+n sea el caso:
David Castro
10
Diseño Base De Datos Diarama de Relaci%n
David Castro
11
Diseño Base De Datos
&U"Rara poder realizar los "uery en el motor de base de datos ostgre!"# se tuvo la necesidad de investigar acerca del #engua4e #*.#$&*.
#*.#$&*/ #*.p$&* 0#rocedural *anuae.#ostre$&* $tructured &uer1 *anuae2 es un lengua4e imperativo provisto por el gestor de base de datos ostgre!"#. ermite e4ecutar comandos !"# mediante un lengua4e de sentencias imperativas y uso de funciones, dando mucho más control automático que las sentencias !"# básicas.
(esde #/pg!"# se pueden realizar cálculos comple4os y crear nuevos tipos de datos de usuario. Como un verdadero lengua4e de programación, dispone de estructuras de control repetitivas y condicionales, además de la posibilidad de creación de funciones que pueden ser llamadas en sentencias !"# normales o e4ecutadas en eventos de tipo disparador trigger 7. )na de las principales venta4as de e4ecutar programación en el servidor de base de datos es que las consultas y el resultado no tienen que ser transportadas entre el cliente y el servidor , ya que los datos residen en el propio servidor. *demás, el gestor de base de datos puede planificar optimizaciones en la e4ecución de la b5squeda y actualización de datos. #as funciones escritas en #/pg!"# aceptan argumentos y pueden devolver valores de tipo básico o de tipo comple4o por e4emplo, registros, vectores, con4untos o incluso tablas7, ermitiéndose tipificación polimórfica para funciones abstractas o genéricas referencia a variables de tipo ob4eto7. #os "uery que se utilizaron para la creación de tablas, llaves foráneas, locales y funciones son los siguientes
Tablas CU"NTA
C$"'$ '"B;$ cuenta < codi+o inte+er =' =>;; codi+o?tio inte+er =' =>;; codi+o?nivel inte+er =' =>;; nom!re c-aracter varin+<500) descricion c-aracter varin+<1000) C=/'"=' @?codi+o (A" $ (D"'$ = "C'= = D$;$'$ = "C'= C=/'"=' @?codi+o?tio $= $
David Castro
12
Diseño Base De Datos = >(D"'$ = "C'= = D$;$'$ = "C'= ) NI)"*
C$"'$ '"B;$ nivel < codi+o?nivel inte+er =' =>;; nom!re c-aracter varin+<50) descricion c-aracter varin+<1000) C=/'"=' @?codi+o?nivel (A" $
C$"'$ '"B;$ tio < codi+o?tio inte+er =' =>;; nom!re c-aracter varin+<50) C=/'"=' @?codi+o?tio (A" $
CREATE TABLE partidae!"a#e$ado % partida inte&er NOT N'LL( "odi&o")enta inte&er NOT N'LL( "odi&otipo inte&er( *e"+a date( "on"epto "+ara"ter ,ar-in&%.00/( "odi&o!oneda inte&er NOT N'LL( !onto n)!eri"%(2/( "a!#io n)!eri"%(2/( de#e n)!eri"%(2/( +a#er n)!eri"%(2/( CONTRAINT ppartida PRIMARY EY %partida/( CONTRAINT *"odi&o")enta FOREI4N EY %"odi&o")enta/ REFERENCE ")enta %"odi&o/ MATC5 IMPLE ON 'PDATE NO ACTION ON DELETE NO ACTION( CONTRAINT *"odi&o!oneda FOREI4N EY %"odi&o!oneda/ REFERENCE !oneda %"odi&o!oneda/ MATC5 IMPLE ON 'PDATE NO ACTION ON DELETE NO ACTION( CONTRAINT 6i#rodiariopartida"+e" C5EC %partida 7 100/ /
David Castro
13
Diseño Base De Datos +ON"DA
create ta!le Aoneda < Codi+o?Aoneda int not null 'io?Aoneda varc-ar <100) Cam!io numeric <42) constraint (?Codi+o?Aoneda rimar @e
**A)"$ 3ORAN"A$ #ARTIDA "+CAB",ADO
";'$ '"B;$ artida?emca!eado "DD C=/'"=' @?codi+o?moneda $= $
";'$ '"B;$ cuenta "DD C=/'"=' @?codi+o?nivel $= $ (D"'$ = "C'= = D$;$'$ = "C'=F ";'$ '"B;$ cuenta "DD C=/'"=' @?codi+o?tio $= $ (D"'$ = "C'= = D$;$'$ = "C'=F
3UNCION"$ +"NU:
C$"'$ $(;"C$ >=C'= ociones?tio?cuenta<) $'>=/ c-aracter varin+ "/ GBDG !e+in return HCaja o BancosI'( 100 CC>;"='$ $%uio de o&cinaI'( 200 =$; 1 "C'/. (roveedores o "creedoresI'( 300 CC>;"='$"creedores -iotecarios es =$; 2 ("//. astos ventas de administracion e imuestos estan en =$; 3 C"('";HF endF GBDG ;"=>"$ l+s%l E8EC'CION: select J rom ciones?'io?Cuenta <)
David Castro
14
Diseño Base De Datos Esta función fue creada para mostrar en pantalla un men5 donde indica los tipos de cuentas con su nivel y las descripciones, ayuda para guiar al momento de ingresar los datos. ACTUA*I,AR "+CAB",ADO
C$"'$ $(;"C$ >=C'= actualiar?emca!eado<artida inte+er codi+o?c inte+er codi+o?t inte+er ec-a date conce c-aracter varin+ moneda inte+er monto numeric) $'>=/ void "/ GBDG declare De!e numeric <92)F declare Ea!er numeric <92)F declare Cam!io numeric <92)F !e+in case codi+o?t K-en 100 t-en i moneda I 2 t-en cam!io I monto J 26.13F Ea!er I AontoF insert into ("'D"?$AC"B$L"D <(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF i moneda I 3 t-en cam!io I monto J 21.04F Ea!er I AontoF insert into ("'D"?$AC"B$L"D<(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF i moneda I 4 t-en cam!io I monto J 1.42F Ea!er I AontoF insert into ("'D"?$AC"B$L"D <(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF K-en 200 t-en i moneda I 2 t-en cam!io I monto J 26.13F De!e I AontoF insert into ("'D"?$AC"B$L"D<(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF i moneda I 3 t-en cam!io I monto J 21.04F De!e I AontoF
David Castro
15
Diseño Base De Datos insert into ("'D"?$AC"B$L"D<(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF i moneda I 4 t-en cam!io I monto J 1.42F De!e I AontoF insert into ("'D"?$AC"B$L"D<(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?ccodi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end iF else insert into ("'D"?$AC"B$L"D<(artida Codi+o?Cuenta Codi+o?'io ec-a Conceto Codi+o?Aoneda Aonto Cam!io De!e Ea!er) values <artida codi+o?c codi+o?t ec-a conce moneda montoCam!io de!e -a!er)F end caseF endF GBDG ;"=>"$ l+s%l ;"';$ C/' 100F ";'$ >=C'= actualiar?emca!eado
30;(;DE'DORE >ARIO;(3(.000/ En esta función ingresamos todos los valores necesarios para las partidas diarias, también realiza la selección de los montos si son debe o haber y los manda a la casilla correcta y también la conversión automática de la moneda seg5n sea el caso. IN'R"$AR DATO$ A *A TAB*A CU"NTA
C$"'$ $(;"C$ >=C'= in+resar?cuenta=/ void "/ GBDG B$= =/$' =' C>$='" $/ "$ l+s%l ;"';$ C/' 100F ";'$ >=C'= in+resar?cuenta
David Castro
16
Diseño Base De Datos
E8EC'CION? /$;$C' =$/"?C>$='" <72002003HD$(/'/ " ""='"HH""='" D$ /$C/H )
IN4REAR DETALLE? C$"'$ $(;"C$ >=C'= =$/"?D$'";;$ < CD?D =' CD?(1 =' CD?(2 =' E"B$ =>A$C <92) D$B$ =>A$C <92) B/$" "CE" <100) )$'>=/ D "/ GBDG D$C;"$ ''"; =>A$C <92)F D$C;"$ /";D?D =>A$C <92)F D$C;"$ /";D?" =>A$C <92)F B$= D$B$ I 0 'E$= /";D?D I E"B$F =/$' =' ("'D"?D$'";;$ $/ $/ $/
David Castro
17
Diseño Base De Datos =/$' =' ("'D"?D$'";;$ $/ "$ Hl+s%lH
E8EC'CION? /$;$C' =$/"?D$'";;$ <110110668004500HC>$='" C""H) Esta función realiza las partidas contables dobles y cuadra las cuentas, ingresa el código de la partida, ingresa la partida uno y la partida do, el haber y el debe, también valida los saldos y los coloca en sus campos ya sea deudor o acreedor.
Conclusi%n
)n sistema de contabilidad si se desea puede ser comple4o ya que se requiere mucho conocimiento del tema, se pueden agregar balance general libro diario ect, pero en este proyecto se realizó la investigación necesaria para poder completar operaciones básicas de contabilidad. or el lado del motor de base de datos no se tuvieron mayores inconvenientes ya que es muy similar al lengua4e estándar !"#, pero se tuvo que investigar la parte del lengua4e #/g!"# ya que no eAisten los procedimientos en osgre!"# como tal, solo funciones por lo demás se cumplió con el ob4etivo.
!aludos
David Castro
18