Las famosas n capas.

11/04/2005 - 11:13 por manolo | Informe spam
Hola,

¿Alguien tiene algún enlace en el cual se expliquen las aplicaciones en
n capas?
Yo estoy interesado en las de 3 capas, ya que estoy muy liado, me
confundo sobre todo entre que poner en la capa de datos y en la capa de
negocio. La capa superior está más bien clara, ya que es la más fácil de
implementar.

Muchas gracias y un saludo.

Preguntas similare

Leer las respuestas

#6 Carlos Sacristán
12/04/2005 - 14:52 | Informe spam
"Alfredo Novoa" escribió en el mensaje
news:

Hola

On Tue, 12 Apr 2005 10:53:39 +0200, "manolo"
wrote:

> En principio, la base de datos la tengo de la siguiente manera:
> - Tablas relacionadas.
> - Procedimientos almacenados que almacenan, modifican y eliminan los
>registros de las tablas.

Este tipo de procedimientos suelen ser un error. Casi siempre es mejor
gestionar las tablas usando SQL, y además requiere mucho menos
trabajo.



Alfredo, ¿realmente piensas que es mejor acceder directamente a las
tablas que a través de procedimientos almacenados? ¿Para tí no tiene valor
el rendimiento, seguridad y mantenimiento de la base de datos? O no entiendo
bien tu comentario o me parece que estás equivocado en este punto



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)
Respuesta Responder a este mensaje
#7 Alfredo Novoa
12/04/2005 - 15:05 | Informe spam
On Tue, 12 Apr 2005 14:52:58 +0200, "Carlos Sacristán"
<csacristanARROBAmvpsPUNTOorg> wrote:

Este tipo de procedimientos suelen ser un error. Casi siempre es mejor
gestionar las tablas usando SQL, y además requiere mucho menos
trabajo.



Alfredo, ¿realmente piensas que es mejor acceder directamente a las
tablas que a través de procedimientos almacenados?



Por supuesto. Las tablas son lo único a lo que necesitas acceder, esto
es uno de los principios básicos del Modelo Relational. A esto se le
llama el Principio de Información de Codd.

¿Para tí no tiene valor
el rendimiento, seguridad y mantenimiento de la base de datos?



Claro que si. La seguridad no tiene nada que ver con si accedemos
directamente a las tablas o no, pero el rendimiento y el mantenimiento
son mejores (sobre todo el mantenimiento) si accedemos directamente a
las tablas. Por lo pronto nos ahorramos todo el desarrollo de
procedimientos almacenados que no sirven para nada.


Saludos
Respuesta Responder a este mensaje
#8 Carlos Sacristán
12/04/2005 - 16:40 | Informe spam
Respuestas en línea...

"Alfredo Novoa" escribió en el mensaje
news:
On Tue, 12 Apr 2005 14:52:58 +0200, "Carlos Sacristán"
<csacristanARROBAmvpsPUNTOorg> wrote:

>> Este tipo de procedimientos suelen ser un error. Casi siempre es mejor
>> gestionar las tablas usando SQL, y además requiere mucho menos
>> trabajo.
>
> Alfredo, ¿realmente piensas que es mejor acceder directamente a las
>tablas que a través de procedimientos almacenados?

Por supuesto. Las tablas son lo único a lo que necesitas acceder, esto
es uno de los principios básicos del Modelo Relational. A esto se le
llama el Principio de Información de Codd.



a un modelo E/R, pero estamos hablando de la aplicación prácticas de este
modelo, y desde luego las tablas es elemento básico, pero no suficiente para
implementar una buena aplicación

> ¿Para tí no tiene valor
>el rendimiento, seguridad y mantenimiento de la base de datos?

Claro que si. La seguridad no tiene nada que ver con si accedemos
directamente a las tablas o no,


directamente a las tablas (con las consecuencias que eso puede tener) que
acceder a ellas de la forma y como uno quiera a través de los procedimientos

pero el rendimiento y el mantenimiento
son mejores (sobre todo el mantenimiento) si accedemos directamente a
las tablas.


como ocurre con los procedimientos almacenados. Si no se hace a través de
procedimientos, el motor tendrá que realizar las mismas comprobaciones cada
vez que le lancemos la misma sentencia. Por lo tanto, los procedimientos son
más eficientes

Por lo pronto nos ahorramos todo el desarrollo de
procedimientos almacenados que no sirven para nada.



Imagínate que cambiamos, por la razón que sea, el diseño de una tabla. Según
tu opinión, es más mantenible tener que cambiar la sentencia con la que se
manipula los datos de esa tabla (modificar la aplicación, con lo que eso
implica) en vez de tocar en un solo sitio (el procedimiento) y que del
cambio realizado no se haya dado cuenta nadie. Eso no tiene lógica

Sinceramente, no entiendo por qué tienes tantos reparos en usar
procedimientos almacenados. Yo sinceramente no le veo ninguna pega (más bien
todo son ventajas), excepto por si el día de mañana tienes que hacer una
migración a un sistema que no soporte los procedimientos


Saludos






Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)
Respuesta Responder a este mensaje
#9 Eduardo A. Morcillo [MS MVP VB]
12/04/2005 - 16:55 | Informe spam
Claro que si. La seguridad no tiene nada que ver con si accedemos
directamente a las tablas o no, pero el rendimiento y el mantenimiento
son mejores (sobre todo el mantenimiento) si accedemos directamente a
las tablas. Por lo pronto nos ahorramos todo el desarrollo de
procedimientos almacenados que no sirven para nada.



Pero si en realidad es todo lo contrario!

Con respecto al mantenimiento, con un SP tienes centralizado el acceso a los
datos con lo cual si algo cambia en la BD no tienes que ir a cambiar varias
sentencias SQL distribuidas por todo tu codigo sino que solo cambias el SP.

Con respecto al rendimiento, un SP esta compilado y el servidor ya tiene un
plan de ejecucion preparado. En cambio si ejecutas sentencias directamente,
estas tienen que primero ser parseadas y chequearse por errores y luego
crearse el plan de ejecucion para ejecutarlas. Todo eso te lleva a perder
rendimiento.

Y con respecto a seguridad, es mejor que el usuario que usa el sistema no
puede acceder directamente a las tablas y solo pueda ejecutar SPs que
acceden a ellas. Ademas de esta forma el mantenimiento de la seguridad es
mucho mas simple que estar seteando que acceso tiene cada usuario a cada
tabla.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
Respuesta Responder a este mensaje
#10 Eduardo A. Morcillo [MS MVP VB]
12/04/2005 - 17:05 | Informe spam
Yo veo que vas por buen camino.

- Vistas que devuelven los datos de varias tablas.



Ojo, usa vistas solo si vas a utilizar TODAS las filas. Las vistas devuelven
todos los registros y si luego los vas a filtrar con un WHERE pierdes
rendimiento. En esos casos en lugar de vistas utiliza SPs a los que les
pasas los filtros y te devuelven solo los registros que necesitas.

El siguiente es un buen articulo sobre la capa de acceso a datos y el paso
de datos entre capas, pero es en ingles:

Designing Data Tier Components and Passing Data Through Tiers
http://msdn.microsoft.com/library/d...BOAGag.asp

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida