Hola!!
Alguien me puede explicar que rayos es y cuando se usa una clave primaria?
y la Foreing Key?
Muchas gracias!!
| |||
Hola mushisimas gracias por responder!! Entonces obviamente no pueden haber dos registros con la misma clave primaria cierto? Y cual es fin de ello? hacer mas rapidas las consultas? o simplemente tener un campo en el cual no se pueden repetir valores? Muchas gracias de nuevo!! |
| ||||
El objetivo de ello es tener una identificación unica por cada registro, mediante un campo en el que no se puedan repetir los valores, claro que indirectamente las consultas son mas rápidas. Es como tu número de cédula, es único y no hay otra persona con ese mismo número. En el Sistema del registro civil no te conocen por tu nombre sinó por tu número de cédula, y cuando hacen una búsqueda te buscan por número de cédula |
| |||
Ok muchas gracias y aquedo mas que entendido!! ![]() Otra dudota, alguien me puede explicar como funcionan los indices, y porque puedo aplicar un mismo indice a varios campos? Gracias!! ![]() |
| |||
He buscado en internet por horas y lo mejor que encuentro es: Un indice es como el indice de un libro, bla, bla, bla. Ustedes no saben donde puedo encontrar un texto que hable un poco mas a fondo y que me puedan explicar un poquitin Porfavor ![]() Gracias!! |
| ||||
Hola, como dice foo, es extenso el tema, definitivamente debes empaparte más al respecto, por que si no entiendes este tema que es tan básico y primordial, entonces tendrás problemas. No se como estarás buscando en la red, yo busque como LLAVE PRIMARIA y solo pongo estos dos enlaces, puedes buscar que hay harto de eso http://macine.epublish.cl/tesis/index-1_3_.html http://es.tldp.org/Tutoriales/NOTAS-...BD/node45.html Saludos
__________________ "Nada en mis manos traigo tan solo a tu cruz me aferro....." |
| ||||
haber bueno si todavia no sabes de que es un primary key bueno yo en su momento tampoco lo sabia, bueno como ya sabes esto es propio de las base de datos como ejemplo de primary key esto es un campo de una tabla o identidad, que tiene la particularidad que no se puede repetir, tu te preguntaras pork. bueno hay datos k no se prepiten o no deberian como tu rol o rut o rut. ya que ese dato te hace unico en tu pais, y cosas como tu fecha de nacimiento, tu nombre, tu telefono y todas esas cosas estan ligadas a ella. una primary keys es un identificador que hacer key es unica y en teoria irepetible, en estos de los asuntos de los datos es muy importante que lso datos sean los mas unicos ya que te imaginas que allan dos personas con el mismo rol y una de ellas comete un crimen, cuando hagan la sitacion se la aran a la persona con el rol 123456, pero como se repite las 2 personas seran arrestadas, por eso se ocupa una primary key para no tener duplicidad de datos. bueno esto es algo grafico ojala que te alla servido de algo
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |
| ||||
bueno de indexacion es el proceso de la busqueda binario, este procedimiento hace que la busqueda sea mas rapida. bueno eso creo que se refiere, existen varias formas de busque como la secuencial a que va una a una por los registros, pero la primary key como es unica osea tabla --> nombres id nombre 1 pepo 2 juan 3 felipe 4 pedro 5 tulio 6 juanin cuando realiasas un select algo asi selecto * from nombres where id = 2 el resultado es 2 juan como sabe que es algo que va en un orden, en este caso numerico, va uno por uno sino que k va directamente 2 asi se ahorra tiempo. en vez que busquez por nombres ya que como no son primery key y por eso no son indexados tendra que buscar 1 por uno y el gasto de tiempo es horroroso
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |
| ||||
Cita: mmm... me refería a que para que te hagas la idea de que es un indice se deberías de haber trabajado con listas dinámicas porque allí se dan ese tipo de ejemplos, esto se ve en la materia Procesamiento Avanzado de Archivos La cosa es mas o menos así, al momento de hacer un SELECTse cargan en memoria los indices de los campos indexados (generalmente la clave primaria) de la tabla en cuestion, se guardan en memoria las claves primarias de todos los registros y la posición física en que se encuentran, cosa que al buscar cierto registro en particular se busca la clave primaria de ese registro en memoria y cuando la encuentra sabe en que posición está ese registro en el archivo físico y va de una a leer el registro en dicha posición. Si no tuviera indices, al momento de hacer un select se deberá ir registro por registro hasta encontrar el buscado y esto tomaría mucho tiempo, por ello lo que hacen las bases de datos es crear indices temporales, para hacer la consulta, paso que toma tiempo y que se obviaría si la tabla tuviera indices Por último, es mas rapido buscar en memoria que buscar en disco, ahora, si aquello es mas rápido porque no cargar toda la tabla en memoria, pues porque la tabla puede ser mayor a la capacidad de almacenamiento de memoria de la compu, por eso solo se indexa la clave primaria ![]() Cualquier duda preguntas Última edición por Developer9; 30/08/2006 a las 14:32 Razón: probar el ajax |
| ||||
Cita: Disculpa FNX_NET, me demoré en responder y tu lo hiciste primero, no es que quiera marginar tu respuesta. Aunque al parecer las dos como que se complementan
Iniciado por FNX_NET ![]() bueno de indexacion es el proceso de la busqueda binario, este procedimiento hace que la busqueda sea mas rapida. bueno eso creo que se refiere, existen varias formas de busque como la secuencial a que va una a una por los registros, pero la primary key como es unica osea tabla --> nombres id nombre 1 pepo 2 juan 3 felipe 4 pedro 5 tulio 6 juanin cuando realiasas un select algo asi selecto * from nombres where id = 2 el resultado es 2 juan como sabe que es algo que va en un orden, en este caso numerico, va uno por uno sino que k va directamente 2 asi se ahorra tiempo. en vez que busquez por nombres ya que como no son primery key y por eso no son indexados tendra que buscar 1 por uno y el gasto de tiempo es horroroso |
| |||
Ok muchas gracias por seguir respondiendo!! Me ha quedado todo mucho mas claro. Pero mi duda es: Porque en mi maejador de bases de datos puedo elegir entre poner una Primary Key y un Index? Osea hay diferencia entre elegir un campo como clave primaria o solo indice? Y porque un indice lo puedo aplicar a varios campos y no solo a el mismo? Gracias de nuevo!! |
| ||||
Ya conoces el concepto de clave primaria y de indice. Por lo general se indexan los campos que frecuentemente son partes de la clausula WHERE de la consulta, si siempre filtras por 'nombre' sería recomendable que indexes el campo 'nombre' para que la consulta se haga más rapida. Y es ley que las claves primarias siempre forman parte de los filtros, por eso siempre se indexan los campos que son claves primarias |
| ||||
El libro una introduccion a las Bases de datos, de C.J.Date te puede servir bastante.
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| ||||
bueno esto es un foro, y es para preguntar y responder cosas que no entendamos, bueno a mi me servido mucho ya que siempre encuntro respuesta aca xD y cuando se respondo
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |