La limitation de la logique métier de l'application de la couche est à courte vue, au mieux. Professionnel expérimenté concepteurs de bases de données ne permettent que rarement sur leurs systèmes. Base de données doivent avoir les contraintes et stockées et les déclencheurs procs pour aider à définir la manière dont les données à partir de toute source d'aller en elle.
Si la base de données est de maintenir son intégrité et à s'assurer que toutes les sources de données nouvelles ou les modifications de données de suivre les règles, la base de données est l'endroit pour mettre la logique requise. Mettre la couche application est une base de données cauchemar en attente de se produire. Les bases de données ne pas obtenir de l'information à partir d'une application. La logique métier de l'application est souvent involontairement court-circuité par des importations (en supposant que vous avez un nouveau client qui voulait leur vieille données importées à votre système ou sur un grand nombre d'enregistrements cibles, personne ne va entrer à un million de cibles possibles grâce à l'interface, il arrive dans un de l'importation). Il est également ignorés par la modification faite par le biais de la fenêtre de requête pour résoudre un des problèmes de temps (des choses comme l'augmentation du prix de tous les produits de 10%). Si vous avez de l'application de la couche de logique qui aurait été appliqué à la modification de données, il ne sera pas. Maintenant, c'est ok pour le mettre dans la couche d'application, aucun sens de l'envoi de données de mauvaise qualité à la base de données et de gaspiller de la bande passante du réseau, mais à ne pas mettre dans la base de données sera tôt ou tard causer des problèmes de données.
Une autre raison de garder tout cela dans la base de données a pour de avec la possibilité pour les utilisateurs de commettre une fraude. Si vous mettez toute votre logique dans la couche d'application, alors vous devez accorder aux utilisateurs d'accéder directement aux tables. Si vous encapsuler toute votre logique dans stockées procs, ils peuvent se limiter à ne faire que ce que l'stockées procs permettre et pas autre chose. Je ne voudrais pas envisager de permettre à tout type de l'accès par les utilisateurs à une base de données qui stocke les rapports financiers ou les renseignements personnels (tels que les dossiers de santé) que je ne voudrais pas permettre à quiconque à l'exception de quelques administrateurs de bases de données afin d'accéder directement à la production de dossiers en aucune façon, la forme ou la forme. Plus la fraude est commise que de nombreux développeurs de réaliser et presque aucun d'entre eux considèrent que la possibilité dans leur conception.
Si vous avez besoin d'importer de grandes quantités de données, en passant par une couche d'accès aux données pourrait ralentir l'importation d'une analyse car il ne prend pas advanatge de l'ensemble des opérations basées que les bases de données sont conçues pour gérer.