¿Que significa restricción de columna y tabla y clustered en gestión de bases de datos?

Como estas espero que bien necesito que me ayudes con algunas preguntas si eres tan amable y espero no molestarte
Que es restricción de columna y de tabla
Que significa CLUSTERED
Los datos de una tabla físicamente puede estar ordenado si no porque
Una vista quie contiene varias tablas puede ser utilizada para modificar datos si no porque
esa son las preguntas que me gustaría que me ayudes por favor
Por la atención que me prestes te anticipo mis agradecimientos mi correo es ironnelson arroba hotmail

12 Respuestas

Respuesta
1
Una restricción de columna es una condición que impide que se introduzcan datos no deseados en un campo de una tabla. Una restricción evidente es por ejemplo que en un campo numérico no se puedan introducir caracteres.
Una restricción definida por el usuario es que por ejemplo en un campo numércio que representa la edad de una persona, no se puedan introducir números negativos.
En cuanto a restricción de tabla no se a que te refieres, a no ser que sean restricciones a nivel de relación, es decir, supongamos dos tablas, clientes y facturas, podemos establecer una restricción de tabla (a nivel de relación) de manera que no se pueda hacer una factura a un cliente que no esté dado de alta en la tabla clientes (o que no se pueda vender un artículo que no esté dado de alta en la tabla artículos).
Cluster significa más o menos. Agrupar En cuanto a bases de datos se utiliza para indicar que una determinada tabla está agrupada u ordenada por un determinado indice, no es un término estrictamente de bases de datos, pero es muy utilizado en SAP por ejemplo.
Los datos de una tabla pueden estar ordenador físicamente, pero normalmente se graban en el orden en que se van introduciendo, posteriormente, a través de indices es como se ordenan los campos.
Una vista es una visualización de una tabla o una consulta, normalmente una vista no permite actualizaciones (SQL SERVER, ORACLE), pero en access una vista si permite actualizaciones dependiendo de la consulta que se realice, si en una vista muestras los datos de la tabla clientes normalmente se podrá actualizar, pero imaginate que muestras una consulta con el número de clientes agrupado por provincia por ejemplo:
Provincia Numero de clientes
Barcelona 500
MADRID 1200
Esta vista no es actualizable porque físicamente cada linea no se corresponde con un registro sino que es la agrupación de varios.
Respuesta
1
Intentaré aclararte tus dudas.
a-Que es restricción de columna y de tabla
Consiste en restringir la información que puede entrar en dicha columna o tabla, es decir, por ejemplo una restricción de columna es que solo entren valores entre 1000 y 3000, cualquier otro valor hará que se produzca un error y no se lleve a cabo la transacción. A nivel de tabla se suelen hacer creando claves únicas, la restricción en este caso consiste en no admitir filas con campos duplicados.
b-Que significa CLUSTERED
Clustered, en SQL Server, es un tipo de índice, del cual sólo puede haber uno por tabla, y hace que todas las filas de la tabla se ordenen físicamente por el campo o campos que componen dicho índice.
c- Una vista que contiene varias tablas puede ser utilzada para modificar datos
Esto sólo se permite en el caso de que todos los datos modificados pertenezcan a la misma tabla.
Espero haber aclarado tus dudas.
Un saludo
Salvador Ramos
www.helpdna.net (informacion sobre SQL Server y Visual Basic)
Respuesta
1
Restricción de columna o tabla se refiere al bloqueo cuando un usuario esta modificando un registro y otro también intenta hacerlo. El registro de columna bloquea solo el registro actual y el de tabla bloquea toda la tabla. Evidentemente el de columna es mejor, pero no todas la bases de datos pueden hacerlo.
Clustered me parece que significa que la base de datos esta dividida físicamente en varios ordenadores o emplazaminetos, pero siendo transparente para el usuario. Esto es solo para grandes bases de datos.
Las otras preguntas no las entiendo.
Respuesta
1
Las restricciones de Columna y Tabla, son las que se definen en la creación de la tabla (con la palabra CONSTRAIN y/o CHECK), es decir para intentar insertar un dato en esa columna o tabla, debe cumplirse esa restricción, puede ser por valores o por referencias a otras tablas, etc.
Cluster y Clustered pueden tener varios significados según el contexto: Informix llama Cluster a una división del disco, Oracle llama cluster a bloques de datos en el disco, HP y Linux llaman Cluster a un conjunto de maquinas configuradas como una sola, en hardware un Cluster es un sector completo del disco duro, MySQL llama clustered index a la manera de almacenar las filas de los indices que son también llaves primarias, etc. Como ves no es una respuesta sencilla.
Los datos no necesitan (y en realidad no deben) ser almanecenados en forma ordenada en el disco, esto restaría velocidad a la escritura de datos, mientras que el acceso no ganaría nada pues este se realiza a través de indices y/o llaves, cuyas consultas no son necesariamente secuenciales. Para lograr esto de ser necesario, reconstruyendo la base de datos, desde un export (un script SQL) podría hacerse.
Una vista no debería ofrecer permisos para insertar datos, a menos que las tablas donde se pretendan insertar los datos, tengan definidos valores por defecto para las columnas por fuera de la vista (un caso poco común). Pero lo usual es no permitir esto.
Respuesta
1
Restringir una columna o una tabla supone protegerlas contra modificación y/o borrado y se produce cuando otro usuario las esta utilizando en modo exclusivo y por tanto las ha bloqueado.
Clustered significa algo así como fragmentado, es decir, se aplica a los indices e indica cuando uno esta compuesto por más de un campo.
Las tablas están físicamente ordenadas por la clave primaria y mantienen una lista por cada indice de más.
Respuesta
1
* RESTRICCIÓN DE COLUMNA
La restricción de columna se aplica cuándo la sentencia SELECT acotará los registros por uno de los campos de la consulta.
Ej.
SELECT nombre, apellidos, sueldo FROM TEmpleados WHERE sueldo>250000
Esta consulta utiliza una restricción de columna puesto que utiliza el campo 'sueldo' para restringir los registros a obtener.
Lo siento tengo que dejarte. Mañana continaré explicándote lo que te falta.
Continuemos dónde lo dejamos ayer...
* RESTRICCIÓN DE TABLA
La restricción de tabla se aplica cuándo la sentencia SELECT acotará los registros por uno de los campos de la consulta (al igual que la restricción de columna), pero ahora, en lugar de ser un valor simple, éste será el resultado de una subconsulta.
Ej.
SELECT nombre, apellidos, sueldo FROM TEmpleados WHERE sueldo < (SELECT AVG(sueldo) FROM TEmpleados)
Esta consulta utiliza una restricción de tabla puesto que utiliza el campo 'sueldo' y la media de los 'sueldos' de los empleados de la tabla 'TEmpleados'. En este caso, primero se realizará la subconsulta para calcular el sueldo medio de los empleados, una vez obtengamos el valor éste sera usado para acotar de la lista de empleados aquellos cuyo sueldo sea inferior a la media.
* CLUSTERED
Clustered | nonclustered - especifica que el índice creado por una restricción unique o primary key es un índice agrupado o no agrupado. Clustered es el valor predeterminado (a menos que ya exista un índice agrupado en la tabla) para restricciones de clave primaria; nonclustered es el valor predeterminado para restricciones exclusivas. Sólo puede haber un índice agrupado por tabla.
Si tienes una clave primaria es para identificar unívocamente tus registros, sin embargo si tienes unl índice clustered es para acelerar las búsquedas según un determinado criterio.
Ej.
CREATE CLUSTERED INDEX cl_lastname
ON library.. member (lastname)
En este ejemplo se crea un índice agrupado sobre la columna lastname (apellidos) de la tabla member (miembro).
Continuará en otro correo... (ya que me ha dado un error al ser una respuesta excesivamente larga).
Continuamos...
* ¿ LOS DATOS DE UNA TABLA PUEDEN ESTAR FISICAMENTE ORDENADOS ?
Lo normal es que la tabla no este ordenada físicamente y sean los índices los que te permitan el acceso a los registros de la tabla por el orden que desees.
Aunque la verdad es que sí quisiéramos la podríamos llegar a obtener aunque el modo de obtenerla seria engorroso y las ventajas que esto aportaría serían mínimas en comparación del esfuerzo necesario para obtenerlo, ya que para ello deberíamos:
1. Crear una tabla temporal vacía con la misma estructura que la tabla original
2. Recorrer la tabla original (ordenada por el campo deseado) e ir insertando los registros en la tabla temporal.
3. Una vez tengamos los registros en la tabla eliminaremos la tabla original y renombraremos la tabla temporal con el nombre de la tabla original
Como puedes comprobar, no vale la pena.
* ¿ UNA VISTA QUE CONTIENE VARIAS TABLAS PUEDE SER UTILIZADA PARA MODIFICAR DATOS ?
Antes de responder a tu pregunta veamos ¿Qué es una vista?
Una vista se define en SQL usando la orden CRETE VIEW. Para definir una vista debemos dar a la vista un nombre y declarar la consulta que calcula la vista. Una vez que establecemos una vista, podemos ejecutar una sentencia SELECT que referencie a esa vista. El sistema asociará la vista SQL con una tabla base y extraerá y visualizará, entonces, los datos de la tabla base.
Esto significa que una vista no contiene datos duplicados de una tabla base. No tiene absolutamente ningún dato, puesto que no es una tabla real, todo el proceso se realiza con los datos almacenados en la tabla base. Es decir se percibe como una tabla virtual.
Entonces si una vista no contiene datos duplicados de la tabla o tablas base no deberá existir ningún problema cuándo queramos modificar datos de una vista.
Bueno y esto es todo...
Respuesta
1
Disculpa lo tardado de la respuesta pero no podía definir exactamente algunas de als cosas que me preguntas, dejame decirte que tu pregunta es la mejor que me han hecho, veamos lo que se refiere a RESTRICCIÓN de columna (no tengo el dato de restricción de tabla),
Pregunta 1) Que es restricción de columna y de tabla
Restricción de columna se refiere a restringir los datos que el usuario podrá poner en cada uno de las columnas de una tabla, esto significa que si a una columna o campo CLAVE está definida como de tipo NUMERO entonces se ha puesto una restricción en la columna que solo aceptará números.
Así que cuando definas tus columnas tendrás una restricción de campo o columna implícita. Pero también restringes la columna al definir si el valor puede ser NULO o no, o si es un valor ÚNICO, o si es INDEXADO.
Pregunta 2) Que significa CLUSTERED
Con respecto a Clustered esa si que es una pregunta más difícil, espero que pueda ser suficientemente explícita mi respuesta, trataré de hacerla breve también.
En Bases de datos Clustered es una forma de optimizar las búsquedas, esto a niveles físicos, esto es, si tu búsqueda te devuelve muchas filas o registros estos son colocados uno junto al otro en algún lugar del disco duro y se les añade un indice de fila anterior y fila siguiente, as idiriamos que se crea una nueva tabla con los datos que tienes y esas dos nuevas columnas para que se pueda accesar directamente a ellos y recorrerlos sin tener que estar tomándolos del disco duro en su lugar original y todos separados, esto optimiza el tiempo de respuesta y como sabes, accesar al disco duro es tardado, más si los datos no están juntos.
Pregunta 3) los datos de una tabla físicamente puede estar ordenado si no porque
Yo creo que depende del manejador de base de datos que tengas, recuerda que el disco duro graba los datos en forma aleatoria ya que se encuentra girando, así que físicamente los datos de una tabla estarán desordenados, a menos que el DBMS (manejador de base de datos) optimice la forma de guardarlos ordenándolos físicamente en el disco duro, esto es, manejando numero de clusters y tamaño de la tabla.
Pregunta 4) Una vista que contiene varias tablas puede ser utilizada para modificar datos si no porque
Si se puede modificar varias tablas, las vistas por definición tienen sus propios "permisos de acceso" así que puedes restringir la modificación de los datos o permitirla, sin importar si la vista representa una o varias tablas.
Respuesta
1
Disculpa por la demora.
Restricciones es p.e. si quieres que en un campo solo se entren numero de entre 2 y 20, o en uno de texto solo "ES", "AR", CH"... restricción a la entrada de datos.
CLUSTERED, es para agrupar todos los indices en uno solo, esto implica más rapidez de búsqueda pero más pesado para el servidor, por tanto conexión más lenta.
Respuesta
1
Sobre restrccion no se si te refieres a alguna función en concreto
clustered no te se responder
supongo que al hablar de orden físico te refieres dentro del dispositivo de almacenamiento, eso es posible si tu base de datos comprueba la posición dentro del dispositivo y actúa en consecuencia.
Supongo que al hablar de vista se entiende que no es de tipo snapshot donde es imposible modificar no siendo así si es posible modificarlos
Respuesta
1
1º La restricción de columna y de tabla sirve para fijar un tamaño para las idems es decir que si no lo restringes tu tabla se auto expandirá cuando un registro tenga un numero de carcteres predeterminado es decir que si en una columna pones cacatúa y esta palabra ocupa toda la columna si haces un restrinction todas las palabras superiores en caracteres no se verán o saldrán una line por debajo.

3º Los datos de una tabla pueden pasarse ya con un criterio de orden
4º Si por ejemplo tu tienes una consulta de ACCESS y a la hora de crearte el recordset seleccionas la consulta cuando realices un ADD o un Update este lo añadirá a la tabla de la que se componga la Vista oConsulta
Respuesta
1
- Que es restricción de columna y de tabla: no entiendo a que te refieres, ¿podrías ser más especifico?
- Que significa CLUSTERED: en BD este termino se refiere a aquellos indices en los cuales, como se encuentran ordenados los registros (con el indice), es como se encuentran ordenados en forma física. Es decir los arboles B que se suelen utilizar para organizar los indices en su ultimo nodo apuntan a direcciones físicas de almacenamiento.
Los datos de una tabla físicamente puede estar ordenado si no porque: se respondió con la anterior
Una vista quie contiene varias tablas puede ser utilizada para modificar datos si no porque: en general depende de la implementación de SQL con que se trabaje. Hay largas discusiones al respecto y varias políticas a seguir.
Espero que te sirva.
Mariano
[email protected]
Respuesta
Vamos a ver:
- Restricción de columna: condición que imponemos a un campo de una tabla, por ejemplo, que el valor del campo1 ha de ser uno de los valores del campo2 en otra tabla.
- Restricción de tabla: esto lo desconozco.
- CLustered: base de datos repartida entre distintas maquinas (no lo conozco muy bien).
- Los datos de una BD no están ordenados físicamente, porque de ser así, al incluir una nueva fila, habría que mover el resto de filas de la tabla,. Para ordenar lo que te interesa mucho es definir bien los indices.
- Puedes utilizar una vista para modificar datos, siempre que esa modificación respete las restricciones de los campos de las tablas que modificas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas