Introduction Muchos desarrolladores web son autodidactas, aprender HTML, a continuacin, pasar a un lenguaje de programacin como PHP. A partir de ah, a menudo aprenden a integrar esto con una base de datos. Muy pocos, aunque tienen un buen conocimiento terico de bases de datos. Mencin claves forneas, o la integridad referencial, y ya est reunido con una mirada en blanco. Bases de datos pequeas pueden ser fcilmente diseados con poco conocimiento la teora de base de datos. Sin embargo, las bases de datos de gran tamao puede salir fcilmente de las manos cuando mal diseado, lo que lleva a los malos resultados, y dando lugar a toda la base de datos que necesitan ser reconstruidos ms tarde. Este artculo es una breve introduccin al tema de las bases de datos relacionales, y se espera abrir el apetito para una mayor exploracin. El modelo de base de datos relacional Una base de datos puede ser entendido como una coleccin de archivos relacionados. Cmo se relacionan esos archivos depende del modelo utilizado. Los primeros modelos incluyen el modelo jerrquico (donde los archivos estn relacionados de manera principal / secundario, con cada archivo de nio que tiene a lo sumo un archivo principal), y el modelo de red (donde los archivos estn relacionados como propietarios y miembros, similar al modelo de red, salvo que cada miembro de archivo puede tener ms de un propietario). El modelo de base de datos relacional es un gran paso adelante, ya que permita a los archivos que se relacionan por medio de un campo comn. Con el fin de relacionar los dos archivos, simplemente necesita tener un campo comn, que hace que el modelo extremadamente flexible. Poeta Code First Name Surname Age 1 Mongane Afrika 62 2 Stephen Serote 58 3 Tatumkhulu Watson 29
Poem Title Poet Wakening Night 1 Thrones of Darkness 2 Once 3
Estas dos tablas se relacionan a travs del campo de cdigo en la tabla de poeta, y el campo poeta en la tabla poema. Podemos ver que escribi el poema "Una vez", siguiendo la relacin, y ver que era poeta 3 o Tatumkhulu Watson. En 1970, cuando EF Codd desarrollado el modelo, se cree que es poco prctico irremediablemente, como las mquinas de la poca no podan hacer frente a la sobrecarga necesaria para mantener el modelo. Por supuesto, el hardware desde entonces ha llegado a pasos agigantados en el, por lo que hoy en da, incluso el ms bsico de PC puede ejecutar sofisticados sistemas de gestin de bases de datos relacionales. Junto a ello fue el desarrollo de SQL. SQL es relativamente fcil de aprender y permite que las personas aprendan rpidamente cmo realizar consultas en una base de datos relacional. Esta simplicidad es parte de la razn de que las bases de datos relacionales constituyen ahora la mayora de las bases de datos que se encuentran. Trminos bsicos La comprensin de las bases de datos relacionales requiere una comprensin de algunos de los trminos bsicos. Los datos son los valores almacenados en la base de datos. Por su parte, los datos significan muy poco. "43156" es un ejemplo. La informacin son datos que se procesa a tener un significado. Por ejemplo, "43156" es la poblacin de la ciudad de Littlewood. Una base de datos es una coleccin de tablas. Cada tabla contiene registros, que son las filas horizontales de la tabla. stos tambin se llaman tuplas. Cada registro contiene campos, que son las columnas verticales de la tabla. stos tambin se llaman atributos. Un ejemplo podra ser un registro del producto. Los campos pueden ser de muchos tipos diferentes. Hay muchos tipos estndar, y cada DBMS (sistema de gestin de base de datos, como Oracle o MySQL) tambin pueden tener sus propios tipos especficos, pero en general se incluyan al menos tres tipos - carcter, numricos y de fecha. Por ejemplo, una descripcin del producto sera un campo de caracteres, una fecha de lanzamiento del producto sera un campo de fecha, y una cantidad de productos en stock, sera un campo numrico. El dominio se refiere a los posibles valores de cada campo puede contener (a veces se llama una especificacin de campo). Por ejemplo, un campo titulado "estado_civil" puede limitarse a los valores de "casadas" y "no casado". Un campo se dice que contiene un valor nulo cuando no contiene nada en absoluto. Los campos pueden crear complicaciones en los clculos y tienen consecuencias para la exactitud de los datos. Por esta razn, muchos campos se establecen especficamente que no puede contener valores NULL. Una de las claves es una forma lgica de acceder a un registro de una tabla. Por ejemplo, en la tabla de productos, el campo product_id podra permitirnos identificar nicamente un registro. Una clave que identifica de forma nica un registro se denomina una clave principal. Un ndice es un mecanismo fsico que mejora el rendimiento de una base de datos. Los ndices se confunden a menudo con llaves. Sin embargo, estrictamente hablando que son parte de la estructura fsica, mientras que las teclas son parte de la estructura lgica. Una vista es una tabla virtual compuesta por un subconjunto de las tablas reales. Se produce un uno-a-uno (1:1) relacin en la que, para cada instancia del cuadro A, slo una instancia de la tabla B existe, y vice-versa. Por ejemplo, cada registro del vehculo se asocia con un nico nmero de motor, y vice-versa. Un (1: m) de uno a muchos es que, para cada instancia del cuadro A, existen muchos casos de la tabla B, pero para cada instancia del cuadro B, slo una vez instancia de la tabla A existe. Por ejemplo, para cada artista, hay muchas pinturas. Dado que es una relacin de uno a muchos, y no manyto-muchos, en este caso, cada cuadro slo puede haber sido pintada por un artista. A muchos a muchos (m: n) relacin se produce cuando, para cada instancia del cuadro A, hay muchos casos de la tabla B, y para cada instancia de la tabla B, hay muchos casos de la tabla A. Por ejemplo, un Antologa potica puede tener muchos autores, y cada autor puede aparecer en muchas antologas de poesa. Existe una relacin obligatoria que, para cada instancia del cuadro A, debe existir una o ms instancias de la tabla B. Por ejemplo, para una antologa de la poesa de existir, debe existir al menos un poema en la antologa. Lo contrario no es necesariamente cierto, sin embargo, que para un poema de existir, no hay necesidad de que para aparecer en una antologa de poesa. Una relacin opcional es donde, para cada instancia del cuadro A, pueden existir casos de la tabla B. Por ejemplo, un poeta no necesariamente tiene que aparecer en una antologa de poesa. Lo contrario no es necesariamente cierto, sin embargo, por ejemplo, para la antologa en la lista, debe tener algunos poetas. Integridad de datos describe la exactitud, validez y consistencia de los datos. Un ejemplo de mala integridad estara en el nombre de un poeta se almacena de forma diferente en dos lugares diferentes. Normalizacin de base de datos es una tcnica que nos ayuda a reducir la aparicin de anomalas en los datos y la integridad de los datos pobres. Tabla Keys Una de las claves es la herramienta para desbloquear el acceso a las tablas de bases de datos. Al conocer la clave, sabemos cmo localizar registros especficos, y atraviesan las relaciones entre tablas. Una clave candidata es cualquier campo o combinacin de campos que identifica de forma nica un registro. El campo / s de la clave candidata debe contener valores nicos (si se duplican los valores, estaran ya no identificar los registros nicos), y no puede contener un valor nulo. Una clave primaria es la clave candidata que se ha elegido para identificar los registros nicos en una tabla en particular. Examine la tabla siguiente: Poet Code First Name Surname Age 1 Mongane Afrika 62 2 Stephen Serote 58 3 Tatumkhulu Watson 29
Al principio parece que hay dos claves candidatas para esta tabla. Tanto el cdigo como la combinacin de 'nombre y apellidos seran suficientes. Siempre es mejor elegir la clave de candidato con el menor nmero de campos para la clave principal actual, por lo que elegira cdigo en este caso. Adems, si pensamos un poco ms, nos daremos cuenta de que hay una posibilidad de que la segunda combinacin no ser nico. La combinacin de 'nombre y apellidos podra ser duplicado. As que considere esto una eleccin de clave principal, tendramos que estar seguros de que ninguno de nuestros poetas nunca podra tener el mismo nombre. Esta es la razn por la que asignamos campos de cdigo. Los cdigos son asignados por el sistema, por lo que podemos asegurar nunca hay cdigos duplicados. Despus de que se ha asignado la clave principal, las claves candidatos restantes estn etiquetados claves alternativas. Claves externas Una relacin entre dos tablas se crea mediante la creacin de un campo comn a las dos tablas. El campo comn debe ser una clave principal a la tabla (la tabla que sera el componente de la uno-a- muchos). Considere la posibilidad de una relacin entre una tabla poeta y una mesa antologa potica. La relacin es de poca utilidad si en lugar de utilizar la clave principal de la tabla poeta, cdigo, tocreate la relacin con la tabla de antologa, se utiliza otro campo que no es nica, como el apellido del poeta. Nosotros nunca saber a ciencia cierta lo que el poeta nos estamos refiriendo a la antologa de la poesa. El campo poet_code se denomina clave externa en la tabla antologa, que significa que es la clave principal (clave) del cuadro poeta.
Antologa Anthology_code Poet_code Poeta Cdigo Nombre Apellidos edad Foreign Las claves externas nos permiten asegurar lo que se llama la integridad referencial. Esto significa que si una clave externa contiene un valor, el valor debe referirse a un registro existente en la tabla relacionada. Por ejemplo, echar un vistazo a estas dos tablas: Poet Code First Name Surname 1 Mongane Afrika 2 Stephen Serote 3 Tatumkhulu Watson Poem Title Poet Wakening Night 1 Thrones of Darkness 2 Once 3
La integridad referencial existe aqu, ya que existen todos los poetas que figuran en la tabla poema en el cuadro poeta. Stephen Serote ahora se retira de la antologa, y lo elimina de la tabla de poeta. En una situacin en la que no se exige la integridad referencial, que no aparecera en el cuadro poeta, pero el cdigo que sola tener se seguir apareciendo en la tabla poema. Por lo tanto, cuando miramos el poeta que escribi Tronos de la oscuridad (que es poeta cdigo 2) se nos enva a un registro inexistente. Poet Code First Name Surname 1 Mongane Afrika 3 Tatumkhulu Watson
Poem Title Poet Wakening Night 1 Thrones of Darkness 2 Once 3
Los resultados de borrado en la integridad de los datos pobres. Las claves externas tambin permiten que las llamadas en cascada eliminaciones y actualizaciones. Esto significa que podemos eliminar Stephen Serote de la tabla de poeta, y todos los poemas escritos por l, con una sentencia SQL. Las "cascadas" Eliminar a travs de los cuadros correspondientes, la eliminacin de todos los registros pertinentes. Las claves externas pueden contener valores nulos si la relacin es opcional, lo que indica que no existe ninguna relacin. Si la relacin es obligatoria, la clave externa no puede contener valores nulos. Vistas Las vistas son tablas virtuales. No contienen ningn dato mismo - y no son una estructura que nos permita acceder a los datos, o un subconjunto de los datos. Una vista puede consistir en un subconjunto de una tabla, tal como en este ejemplo: Poeta Cdigo Nombre Apellidos edad Direccin Telfono Esta es la lista completa de los campos de la tabla de poeta Suscriptor vista Cdigo FIRST_NAME Apellidos Grado Este punto de vista se podra utilizar para que otros puedan ver el poeta cdigo, nombre y apellidos, pero no permite el acceso a la informacin personal. O, un punto de vista podra ser una combinacin de un nmero de tablas, tales como en este ejemplo: Poeta Cdigo Nombre Apellidos edad Direccin Telfono Poema Cdigo Poem Cdigo Poeta Ttulo Suscriptor vista FIRST_NAME Apellidos Ttulo del poema Las vistas se utilizan con frecuencia para fines de seguridad. Desarrolladores junior pueden necesitar acceso a determinadas partes de una tabla, pero no necesitan tener acceso a todos los datos. Lo que no se necesitan, incluso si se trata de la misma tabla, se oculta ya salvo de la manipulacin o de visin. Asimismo, vistas permiten consultas SQL a ser mucho ms simple. Por ejemplo, sin vistas, un desarrollador puede tener que utilizar la siguiente consulta: SELECT 'nombre, apellidos, poema DE poeta, poema DONDE poem.poet_code = poet.code Y poet.title = 'Una vez';
Con la vista, un desarrollador podra hacer lo mismo con: SELECT 'nombre, apellidos, poema DE subscriber_view;
Mucho ms sencillo para un desarrollador junior que an no ha aprendido a hacer combinaciones de varias tablas y menos complicaciones para un desarrollador senior tambin!