Database application architectural approaches