Stored Procedures are bad?

24/05/2008 - 03:59 por Antonio Ortiz | Informe spam
Un interesante articulo, lo expongo para enriquecer el tema sin afan de
defender tal o cual posicion. Lo ironico es que el autor del articulo es el
mismo que creo la herramienta LLBLGen, que permite generar codigo para SP y
clases .Net para la capa de datos.

Su articulo 'Stored Procedures are bad'
http://weblogs.asp.net/fbouma/archi...38178.aspx

Descarga de LLBLGen
http://www.microsoft.com/downloads/...x?FamilyID›F77697-10B0-42CA-AFE9-B76044B3D2AF&displaylang=en


Investigue un poco el tema a raiz de que un instructor se ofendio cuando le
dije que no estaba de acuedo en la afirmacion 'Los Stored Procedures
ejecutan mas rapido que las consultas dinamicas'. En mi opinion el unico
argumento sostenible para utilizar SP es 'buenas practicas'.


saludos,

Antonio Ortiz
asesor en sistemas
www.aortiz.net
www.progvisual.com

Preguntas similare

Leer las respuestas

#76 Alfredo Novoa
27/05/2008 - 17:42 | Informe spam
El Tue, 27 May 2008 07:26:11 -0600, Antonio Ortiz escribió:

Al crear una relacion uno a uno estas desnormalizando (o como dices tu,
pasando a una forma normal inferior) ya que no cumples la 3ra forma normal.



¿Me puedes explicar por que no se cumple la 3ª forma normal?


Saludos
Alfredo
Respuesta Responder a este mensaje
#77 Antonio Ortiz
27/05/2008 - 23:11 | Informe spam
De inicio, en una relacion uno a uno, tienes medias entidades, eso ya no es
del todo correcto, y la tercera forma normal dice que todas las columnas
deben relacionarse directamente con la llave primaria de esa tabla (la cual
es unica y no puede haber otra identica en otra tabla). Me quedo con la
conclusion de que a veces hay que brincarse algunas reglas o leyes en pro de
optimizar.

http://forums.asp.net/p/1254289/2327071.aspx

Bueno, parece que esto se torna personal, asi que cierro este capitulo con
este post. Agradezco la participacion y comentarios de todos, lo cual hace
enriquecer el tema y formarse una opinion.


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Alfredo Novoa" escribió en el mensaje
news:1uj8awmo2t2dl.pnvyot8hbqn5$
El Tue, 27 May 2008 07:26:11 -0600, Antonio Ortiz escribió:

Al crear una relacion uno a uno estas desnormalizando (o como dices tu,
pasando a una forma normal inferior) ya que no cumples la 3ra forma
normal.



¿Me puedes explicar por que no se cumple la 3ª forma normal?


Saludos
Alfredo
Respuesta Responder a este mensaje
#78 Eduardo
27/05/2008 - 23:25 | Informe spam
deben relacionarse directamente con la llave primaria de esa tabla (la
cual es unica y no puede haber otra identica en otra tabla).



Debe ser única dentro del ámbito de la propia tabla. Que esté en otra tabla
no importaría si semánticamente es otra entidad. Más aún puedes ponerla como
clave foránea en la otra tabla y listo.
Respuesta Responder a este mensaje
#79 Alfredo Novoa
28/05/2008 - 01:45 | Informe spam
El Tue, 27 May 2008 15:11:56 -0600, Antonio Ortiz escribió:

De inicio, en una relacion uno a uno, tienes medias entidades, eso ya no es
del todo correcto,



Esto no tiene ninguna relación con la normalización. Por no decir otras
cosas.

y la tercera forma normal dice que todas las columnas
deben relacionarse directamente con la llave primaria de esa tabla



No dice eso exactamente, sino que todo atributo que no pertenece a una
clave candidata depende directamente de las claves cantidatas y de nada
más.

Supongo que a más de uno le sorprenderá si digo que en el Modelo Relacional
no existen las claves primarias, pero es así.

En el Modelo Relacional solo existen claves candidatas y ninguna es más
primaria que las demás.

Pero volvamos al ejemplo:

Tabla1 { ID, Nombre, Domicilio }

Si suponemos que la única clave candidata es ID entonces Nombre y Domicilio
dependen directamente de ID por lo que la tabla está en 3ª Forma Normal.

Tabla2 { ID, Telefono, FAlta }

Aquí lo mismo, si la única clave candidata es ID entonces Telefono y FAlta
dependen directamente de ID y por lo tanto la tabla está en 3ª Forma
Normal.

Y el otro ejemplo de Tabla2

Tabla2 { ID2, ID1, Telefono, FAlta }

Aquí hay dos claves candidatas ID1 e ID2, y Telefono y FAlta dependen
directamente de ellas, por lo tanto la tabla está en 3ª Forma Normal.

¿Sigues manteniendo que las tablas se han desnormalizado?

Bueno, parece que esto se torna personal,



No se de donde has sacado esta idea :-(


Saludos
Alfredo
Respuesta Responder a este mensaje
#80 Rafael Cano
28/05/2008 - 09:57 | Informe spam
Hola Antonio, sobre las relaciones 1 a 1, si es verdad que no suelen
ser muy usuales, pero te cuento el sistema que yo utilizo (por la cuenta
de la vieja, digamos) para establecer una relación 1:1 o 1:[0,1].

Para las relaciones 1:1 voy a las consultas que hay que hacer para
sacar información de la tabla, así los datos que más se consultan los
dejo en una y los que menos en otra, con esto en las consultas que se
hacen desde el aplicativo, principal que opera con la base de datos, se
gana velocidad.

Para las relaciones 1:[0,1], ahí lo que hago es preguntarme lo
siguiente: ¿puedo ahorrar espacio?, en mi caso particular, trabajo en
una empresa que desarrolla un aplicativo para sus clientes, cada cliente
tiene su particularidad, pero trabaja con el mismo modelo de datos, es
por eso que algunos quieren una información añadida de algunos aspectos
del negocio, es ahí donde utilizo la relación.

TablaA - Info. Común
TablaA1- Info. Particular Empresa A, B, C

Con esto consigo que las empresas que no utilizan dicha información
no gasten espacio de su base de datos, con información que no les interesa.


Salu2 Rafael Cano
rcanop(arroba)yahoo.es
Jaén - España
Villamartín - Cádiz - España

Antonio Ortiz escribió:
Un saludo Miguel:

Gracias por aportar a este tema. Lo unico que debati al instructor fue su
afirmacion que las sentencias Transact dentro de los SP's ejecutan 40% mas
rapido que SQL Dinamico (no se de donde saco dicho porcentaje). Debo
mencionar que mis respetos al tipo, denotaba conocimientos profundos de
infraestructura y practica en desarrollo, sin embargo nos trato a todos como
novatos y nunca se espero que alguien le debatiera algo y su unico argumento
como respuesta fue: 'en esto yo soy experto'.

Por cierto, el debate sobre las relaciones 1 a 1, la misma documentacion de
Access dice:
"Este tipo de relación no es normal, porque la mayoría de la información
que se relaciona de esta forma estaría en una tabla. Puede utilizar la
relación uno a uno para dividir una tabla con muchos campos, para aislar
parte de una tabla por razones de seguridad o para almacenar información que
sólo se aplica a un subconjunto de la tabla principal. "

.. Y he de mencionar que en mis 15 años desarrollando software jamas me
encontre una situacion donde debiera utilizar relaciones 1 a 1.


saludos,


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com





"Miguel Egea" escribió en el mensaje
news:
Yo creo que hay razones sobradas para usar sp's, se han dicho en este
grupo hasta la saciedad, sin embargo la más importante para mí es la
analogía con el desarrollo de aplicaciones. Cuando creas un objeto accedes
a través de métodos y propiedades, por que eso te permite cambiar el
comportamiento sin cambiar la interfaz y que todo siga funcionando ¿porque
eso no habría de aplicar en la base de datos? Si el sistema es de misión
critica hay mil y una cosas que un buen dba puede hacer si el acceso es a
través de sp's y sin embargo tiene las manos mucho más atadas si no lo es.

Esa es mi opinión.

Saludos
Miguel Egea
(muchas gracias Antonio, hacía siglos que no leía tu nombre y me ha
encantao volver a leerlo :))

"Antonio Ortiz" wrote in message
news:%23N%
Un interesante articulo, lo expongo para enriquecer el tema sin afan de
defender tal o cual posicion. Lo ironico es que el autor del articulo es
el mismo que creo la herramienta LLBLGen, que permite generar codigo para
SP y clases .Net para la capa de datos.

Su articulo 'Stored Procedures are bad'
http://weblogs.asp.net/fbouma/archi...38178.aspx

Descarga de LLBLGen
http://www.microsoft.com/downloads/...x?FamilyID›F77697-10B0-42CA-AFE9-B76044B3D2AF&displaylang=en


Investigue un poco el tema a raiz de que un instructor se ofendio cuando
le dije que no estaba de acuedo en la afirmacion 'Los Stored Procedures
ejecutan mas rapido que las consultas dinamicas'. En mi opinion el unico
argumento sostenible para utilizar SP es 'buenas practicas'.


saludos,

Antonio Ortiz
asesor en sistemas
www.aortiz.net
www.progvisual.com










Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida