BBDD.pdf

43
PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información. PDF generated at: Wed, 21 Apr 2010 10:52:51 UTC Base de Datos Relacional

Transcript of BBDD.pdf

Page 1: BBDD.pdf

PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información.PDF generated at: Wed, 21 Apr 2010 10:52:51 UTC

Base de Datos Relacional

Page 2: BBDD.pdf

ContenidosArtículos

Base de datos 1Base de datos relacional 5Normalización de bases de datos 9Modelo relacional 16Modelo entidad- relación 18Modelo de datos 24Tabla (base de datos) 26Columna (base de datos) 28Registro (base de datos) 29Sistema de gestión de bases de datos 30SQL 32

ReferenciasFuentes y contribuyentes del artículo 39Fuentes de imagen, Licencias y contribuyentes 40

Licencias de artículosLicencia 41

Page 3: BBDD.pdf

Base de datos 1

Base de datos

OpenOffice.org Base: sistema de gestión de bases de datos.

Una base de datos o banco de datos (enocasiones abreviada BB.DD.) es unconjunto de datos pertenecientes a un mismocontexto y almacenados sistemáticamentepara su posterior uso. En este sentido, unabiblioteca puede considerarse una base dedatos compuesta en su mayoría pordocumentos y textos impresos en papel eindexados para su consulta. En la actualidad,y debido al desarrollo tecnológico decampos como la informática y laelectrónica, la mayoría de las bases de datosestán en formato digital (electrónico), queofrece un amplio rango de soluciones al problema de almacenar datos.

Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar yposteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como suutilización y administración, se estudian dentro del ámbito de la informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamenteutilizadas en entornos científicos con el objeto de almacenar la información experimental.Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por lasleyes de varios países. Por ejemplo, en España los datos personales se encuentran protegidos por la Ley Orgánica deProtección de Datos de Carácter Personal (LOPD).

Tipos de bases de datosLas bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se este manejando, o la utilidadde la misma:

Según la variabilidad de los datos almacenados

Bases de datos estáticas

Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos queposteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo,realizar proyecciones y tomar decisiones.

Page 4: BBDD.pdf

Base de datos 2

Bases de datos dinámicas

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones comoactualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de estopuede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, unvideoclub.

Según el contenido

Bases de datos bibliográficas

Solo contienen un surrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de unabase de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de unadeterminada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el textocompleto, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias —vermás abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultadosde análisis de laboratorio, entre otras.

Bases de datos de texto completo

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección derevistas científicas.

Directorios

Un ejemplo son las guías telefónicas en formato electrónico.

Bases de datos o "bibliotecas" de información química o biológica

Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vidao médicas. Se pueden considerar en varios subtipos:• Las que almacenan secuencias de nucleótidos o proteínas.• Las bases de datos de rutas metabólicas.• Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de

biomoléculas-• Bases de datos clínicas.• Bases de datos bibliográficas (biológicas, químicas, médicas y de otros campos): PubChem, Medline,

EBSCOhost.

Modelos de bases de datosAdemás de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a sumodelo de administración de datos.Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde seguarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Losmodelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente debase de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.Algunos modelos con frecuencia utilizados en las bases de datos:

Page 5: BBDD.pdf

Base de datos 3

Bases de datos jerárquicasÉstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. Eneste modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre deinformación puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijosse los conoce como hojas.Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen deinformación y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia dedatos.

Base de datos de redÉste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto denodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema deredundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de redha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionalesSon bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy pococomunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, esimportante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto laredundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general parapoderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Bases de datos relacionalesÉste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Trasser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), notardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de"relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pesea que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualizade una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuestapor registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otrosmodelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y deutilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante"consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured QueryLanguage o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemasde gestión de bases de datos relacionales.Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de unabase de datos.Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas deadministración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para sugestión.

Page 6: BBDD.pdf

Base de datos 4

Bases de datos multidimensionalesSon bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP.Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datosrelacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivelconceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, obien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Bases de datos orientadas a objetosEste modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en labase de datos los objetos completos (estado y comportamiento).Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes delparadigma de objetos:• Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos

incorrectos o conflictos.• Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.• Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de ladefinición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura)de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). Laimplementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz.Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a travésde sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarseindependencia entre programas y operaciones.SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene lacompatibilidad con SQL92.

Bases de datos documentalesPermiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es unsistema de índices optimizado para este tipo de bases de datos.

Bases de datos deductivasUn sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacerdeducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base dedatos. Las bases de datos deductivas son también llamadas bases de datos lógicas, a raíz de que se basa en lógicamatemática.

Page 7: BBDD.pdf

Base de datos 5

Gestión de bases de datos distribuidaLa base de datos está almacenada en varias computadoras conectadas en red. Surgen debido a la existencia física deorganismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así adistintas universidades, sucursales de tiendas, etcétera.

Véase también• Sistema de gestión de base de datos• Modelo relacional, normalización de bases de datos• Base de datos orientada a objetos• Almacén de datos• Minería de datos• Base de datos biológica• Base de datos probabilística

Base de datos relacionalUna base de datos relacional es una base de datos que cumple con elmodelo relacional, el cual es el modelo más utilizado en la actualidadpara modelar problemas reales y administrar datos dinámicamente.Permiten establecer interconexiones (relaciones) entre los datos (queestán guardados en tablas), y trabajar con ellos conjuntamente. Tras serpostuladas sus bases en 1970 por Edgar Frank Codd, de loslaboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos debase de datos.[1]

Características• Una base de datos relacional se compone de varias tablas o relaciones.• No pueden existir dos tablas con el mismo nombre.• Cada tabla es a su vez un conjunto de registros, filas o tuplas.

Elementos

Relaciones base y derivadasEn una base de datos relacional, todos los datos se almacenan y se acceden a ellos por medio de relaciones. Lasrelaciones que almacenan datos son llamados "relaciones base" y su implementación es llamada "tabla". Otrasrelaciones no almacenan datos, pero son calculadas al aplicar operaciones relacionales. Estas relaciones son llamadas"relaciones derivadas" y su implementación es llamada "vista" o "consulta". Las relaciones derivadas sonconvenientes ya que expresan información de varias relaciones actuando como si fuera una sola.

Page 8: BBDD.pdf

Base de datos relacional 6

RestriccionesUna restricción es una condición que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas noson determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datossea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valoresenteros entre 1 y 10.Las restricciones proveen un método de implementar reglas en la base de datos. Las restricciones restringen los datosque pueden ser almacenados en las tablas. Usualmente se definen usando expresiones que dan como resultado unvalor booleano, indicando si los datos satisfacen la restricción o no.Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizarmejor los datos. Las restricciones son muy discutidas junto con los conceptos relacionales.

DominiosUn dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores delatributo, puede ser considerado como una restricción. Matemáticamente, atribuir un dominio a un atributo significa"todos los valores de este atributo deben de ser elementos del conjunto especificado".Distintos tipos de dominios son: enteros, cadenas de texto, fecha, etc.

Clave únicaCada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, esdecir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjuntode campos se llama clave única.Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a claveprimaria.

Clave primariaUna clave primaria es una clave única elegida entre todas las candidatas que define univocamente a todos los demasatributos de la tabla, para especificar los datos que serán relacionados con las demás tablas. La forma de hacer esto espor medio de claves foráneas.Sólo puede existir una clave primaria por tabla y ningún campo de dicha clave puede contener valores NULL.

Clave foráneaUna clave foránea es una referencia a una clave en otra tabla. Las claves foráneas no necesitan ser claves únicas en latabla donde están y sí a donde están referenciadas.Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de empleados, obviamente se permiteque haya varios empleados en un mismo departamento, pero existirá sólo un departamento.

Page 9: BBDD.pdf

Base de datos relacional 7

Clave índiceLas claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los índices pueden ser creadoscon cualquier combinación de campos de una tabla. Las consultas que filtran registros por medio de estos campos,pueden encontrar los registros de forma no secuencial usando la clave índice.Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una de ellas es óptima para ciertadistribución de datos y tamaño de la relación.Los índices generalmente no se consideran parte de la base de datos, pues son un detalle agregado. Sin embargo, lasclaves índices son desarrolladas por el mismo grupo de programadores que las otras partes de la base de datos.

Procedimientos almacenadosUn procedimiento almacenado es código ejecutable que se asocia y se almacena con la base de datos. Losprocedimientos almacenados usualmente recogen y personalizan operaciones comunes, como insertar un registrodentro de una tabla, recopilar información estadística, o encapsular cálculos complejos. Son frecuentemente usadospor un API por seguridad o simplicidad.Los procedimientos almacenados no son parte del modelo relacional, pero todas las implementaciones comercialeslos incluyen.

EstructuraLa base de datos se organiza en dos marcadas secciones; el esquema y los datos (o instancia).El esquema es la definición de la estructura de la base de datos y principalmente almacena los siguientes datos:• El nombre de cada tabla• El nombre de cada columna• El tipo de dato de cada columna• La tabla a la que pertenece cada columnaLas bases de datos relacionales pasan por un proceso al que se le conoce como normalización, el resultado de dichoproceso es un esquema que permite que la base de datos sea usada de manera óptima.Los datos o instancia es el contenido de la base de datos en un momento dado. Es en si, el contenido de todos losregistros.

Manipulación de la informaciónPara manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formalesel álgebra relacional y el cálculo relacional. El álgebra relacional permite describir la forma de realizar una consulta,en cambio, el cálculo relacional sólo indica lo que se desea devolver.El lenguaje más común para construir las consultas a bases de datos relacionales es SQL (Structured QueryLanguage), un estándar implementado por los principales motores o sistemas de gestión de bases de datosrelacionales.En el modelo relacional los atributos deben estar explícitamente relacionados a un nombre en todas las operaciones,en cambio, el estándar SQL permite usar columnas sin nombre en conjuntos de resultados, como el asteriscotaquigráfico (*) como notación de consultas.Al contrario del modelo relacional, el estándar SQL requiere que las columnas tengan un orden definido, lo cual esfácil de implementar en una computadora, ya que la memoria es lineal.Es de notar, sin embargo, que en SQL el orden de las columnas y los registros devueltos en cierto conjunto deresultado nunca está garantizado, a no ser que explícitamente sea especificado por el usuario.

Page 10: BBDD.pdf

Base de datos relacional 8

Manejadores de base de datos relacionalesExiste software exclusivamente dedicado a tratar con bases de datos relacionales. Este software se conoce comoSGBD (Sistema de Gestión de Base de Datos relacional) o RDBMS (del inglés Relational Database ManagementSystem).Entre los gestores o manejadores actuales más populares encontramos: MySQL, PostgreSQL, Oracle, DB2 yMicrosoft SQL Server.

Ventajas y desventajasVentajas

• Provee herramientas que garantizan evitar la duplicidad de registros.• Garantiza la integridad referencial, así, al eliminar un registro elimina todos los registros relacionados

dependientes.• Favorece la normalización por ser más comprensible y aplicable.Desventajas

• Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información geográfica.• No se manipulan de forma manejable los bloques de texto como tipo de dato.Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer las necesidades de lasaplicaciones anteriores y así, complementar pero no sustituir a las bases de datos relacionales.

Véase también• Base de datos• Modelo relacional• Modelo entidad-relación• Base de datos orientada a objetos

Enlaces externos• Articulo sobre Como ocupar menos espacio de disco duro en bases de datos relacionales [2]

• Comunidad de profesionales Oracle hispanoparlantes [3]

• Artículo sobre Base de datos relacional [4]

• Blog sobre base de datos Oracle y alta disponibilidad [5]

Referencias[1] Communications of the ACM, volume=13, issue=6, pages=377-387 (http:/ / www. acm. org/ classics/ nov95/ toc. html) en inglés[2] http:/ / www. nuevastecnologias. com. ar/ 2010/ 04/ como-ahorrar-espacio-en-una-base-de. html[3] http:/ / comunidadoraclehispana. ning. com[4] http:/ / objetoide. blogspot. com/ 2008/ 02/ base-de-datos-relacional. html[5] http:/ / oracleracnotes. wordpress. com/

Page 11: BBDD.pdf

Normalización de bases de datos 9

Normalización de bases de datosEl proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas trasel paso del modelo entidad-relación al modelo relacional.Las bases de datos relacionales se normalizan para:• Evitar la redundancia de los datos.• Evitar problemas de actualización de los datos en las tablas.• Proteger la integridad de los datos.En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada comouna relación tiene que cumplir con algunas restricciones:• Cada columna debe tener su nombre único.• No puede haber dos filas iguales. No se permiten los duplicados.• Todos los datos en una columna deben ser del mismo tipo.

Terminología relacional equivalente

Figura 1.0: Trabajo (Código, Nombre, Posición, Salario), donde Código es la ClavePrimaria.

• Relación = tabla o archivo• Tupla = registro, fila o renglón• Atributo = columna o campo• Clave = llave o código de

identificación• Clave Candidata = superclave

mínima• Clave Primaria = clave candidata

elegida• Clave Ajena = clave externa o clave foránea• Clave Alternativa = clave secundaria• Dependencia Multivaluada = dependencia multivalor• RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases de Datos

Relacionales.• 1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form.Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teóricadel modelo de base de datos relacional.Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo puede tomar.Una instancia de una tabla puede verse entonces como un subconjunto del producto cartesiano entre los dominios delos atributos. Sin embargo, suele haber algunas diferencias con la analogía matemática, ya que algunos RDBMSpermiten filas duplicadas, entre otras cosas. Finalmente, una tupla puede razonarse matemáticamente como unelemento del producto cartesiano entre los dominios.

Page 12: BBDD.pdf

Normalización de bases de datos 10

Dependencia

Dependencia funcional

B es funcionalmente dependiente de A.

Una dependencia funcional es unaconexión entre uno o más atributos.Por ejemplo si conocemos el valor deFechaDeNacimiento podemos conocerel valor de Edad.

Las dependencias funcionales delsistema se escriben utilizando unaflecha, de la siguiente manera:FechaDeNacimiento Edad

Aquí a FechaDeNacimiento se le conoce como un determinante. Se puede leer de dos formas FechaDeNacimientodetermina a Edad o Edad es funcionalmente dependiente de FechaDeNacimiento. De la normalización (lógica) a laimplementación (física o real) puede ser sugerible tener éstas dependencias funcionales para lograr la eficiencia enlas tablas.

Propiedades de la Dependencia funcionalExisten 3 axiomas de Armstrong:

Dependencia funcional Reflexiva

Si "y" está incluido en "x" entonces x ySi la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar ladirección o su nombre.

Dependencia funcional Aumentativa

entonces dni nombre

dni,dirección nombre,dirección

Si con el dni se determina el nombre de una persona, entonces con el dni más la dirección también se determina elnombre o su dirección.

Dependencia funcional transitiva

Dependencia funcional transitiva.

Sean X, Y, Z tres atributos (o grupos deatributos) de la misma entidad. Si Ydepende funcionalmente de X y Z de Y,pero X no depende funcionalmente deY, se dice entonces que Z dependetransitivamente de X. Simbólicamentesería:

X Y Z entonces X ZFechaDeNacimiento Edad

Edad Conducir

FechaDeNacimiento Edad Conducir

Page 13: BBDD.pdf

Normalización de bases de datos 11

Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamentepodemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor decierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo).

Propiedades deducidas

Unión

y entonces

Pseudo-transitiva

y entonces

Descomposición

y está incluido en entonces

ClavesUna clave primaria es aquella columna (pueden ser también dos columnas o más) que identifica únicamente a esafila. La clave primaria es un identificador que va a ser único para cada fila. Se acostumbra a poner la clave primariacomo la primera columna de la tabla pero esto no tiene que ser necesario, si no es más una conveniencia. Muchasveces la clave primaria es autonumérica.En una tabla puede que tengamos más de una clave, en tal caso se puede escoger una para ser la clave primaria, lasdemás claves son las claves candidatas. Además es la posible clave primaria.Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla,es a su vez clave primaria en otra tabla.Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que tambiénpuede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos elnúmero de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser unaclave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todoslos clientes.Una clave compuesta es una clave que está compuesta por más de una columna.

Formas NormalesLas formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la formanormal N es decir que todas sus tablas están en la forma normal N.En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las basesde datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd.[1]

Primera Forma Normal (1FN)Una tabla está en Primera Forma Normal si:• Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.• La tabla contiene una clave primaria.• La llave primaria no contiene atributos nulos.• No posee ciclos repetitivos.• No debe de existir variación en el número de columnas.

Page 14: BBDD.pdf

Normalización de bases de datos 12

Una columna no puede tener múltiples valores. Los datos son atómicos. (Si a cada valor de X le pertenece un valorde Y, entonces a cada valor de Y le pertenece un valor de X)Esta forma normal elimina los valores repetidos dentro de una BD

Segunda Forma Normal (2FN)Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ningunaclave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales.En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependenciacompletamente funcional. Una dependencia funcional es completamente funcional si al eliminar losatributos A de X significa que la dependencia no es mantenida, esto es que A Є X, (X – {A}) -x-> Y. Unadependencia funcional es una dependencia parcial si hay algunos atributos que pueden sereliminados de X y la dependencia todavía se mantiene, esto es A Є X, (X – {A}) -> Y.Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyectosabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependientedado que ni DNI HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la dependencia.Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene la dependencia.

Tercera Forma Normal (3FN)La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributosque no son clave.Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es unadependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde semantiene X->Z y Z->Y.Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura.Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque lasdependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjuntode la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER esindeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.

Forma normal de Boyce-Codd (FNBC)La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clavecandidata. Deberá registrarse de forma anillada ante la presencia de un intervalo seguido de una formalizacionperpetua, es decir las variantes creadas, en una tabla no se llegaran a mostrar, si las ya planificadas, dejan de existir

Cuarta Forma Normal (4FN)Una tabla se encuentra en 4FN si , y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y,siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias.

Page 15: BBDD.pdf

Normalización de bases de datos 13

Quinta Forma Normal (5FN)Una tabla se encuentra en 5FN si:• La tabla está en 4FN• No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se

encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de dependencia se encuentra definidapor las claves candidatas.

Reglas de CoddCodd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único quehacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó12 reglas que un verdadero sistema relacional debería tener, en la práctica algunas de ellas son difíciles de realizar.Un sistema podrá considerarse "más relacional" cuanto más siga estas reglas.

Regla No. 1 - La Regla de la informaciónToda la información en un RDBMS está explícitamente representada de una sola manera por valores en una tabla.Cualquier cosa que no exista en una tabla no existe del todo. Toda la información, incluyendo nombres de tablas,nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro delas bases de datos. Las tablas que contienen tal información constituyen el Diccionario de Datos. Esto significa quetodo tiene que estar almacenado en las tablas.Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente deuna manera: con valores en tablas. Por tanto los metadatos (diccionario, catálogo) se representan exactamente igualque los datos de usuario. Y puede usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos(regla 4)

Regla No. 2 - La regla del acceso garantizadoCada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la tabla, suclave primaria, y el nombre de la columna.Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columnarequerida, deberá encontrarse uno y solamente un valor. Por esta razón la definición de claves primarias para todaslas tablas es prácticamente obligatoria.

Regla No. 3 - Tratamiento sistemático de los valores nulosLa información inaplicable o faltante puede ser representada a través de valores nulos

Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores nulos enel lugar de columnas cuyos valores sean desconocidos o inaplicables

Regla No. 4 - La regla de la descripción de la base de datosLa descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas ycolumnas, y debe ser accesible a los usuarios autorizados.La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada exactamentede la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a través de sentencias deSQL (o similar).

Page 16: BBDD.pdf

Normalización de bases de datos 14

Regla No. 5 - La regla del sub-lenguaje IntegralDebe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datos,definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones.Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado paraadministrar completamente la base de datos.

Regla No. 6 - La regla de la actualización de vistasTodas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo.La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistascomplejas.

Regla No. 7 - La regla de insertar y actualizarLa capacidad de manejar una base de datos con operandos simples aplica no sólo para la recuperación o consultade datos, sino también para la inserción, actualización y borrado de datos'.Esto significa que las cláusulas para leer, escribir, eliminar y agregar registros (SELECT, UPDATE, DELETE eINSERT en SQL) deben estar disponibles y operables, independientemente del tipo de relaciones y restricciones quehaya entre las tablas.

Regla No. 8 - La regla de independencia físicaEl acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecerconsistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodosde acceso a los datos.El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predeciblebasados en la definición lógica de la base de datos, y éste comportamiento debería permanecer inalterado,independientemente de los cambios en la definición física de ésta.

Regla No. 9 - La regla de independencia lógicaLos programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradascuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos.La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal debenser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar omodificar estos programas de aplicación.

Regla No. 10 - La regla de la independencia de la integridadTodas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en elprograma de aplicación.

Las reglas de integridad

1. Ningún componente de una clave primaria puede tener valores en blanco o nulos (ésta es la norma básica deintegridad).

2. Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación de estasreglas aseguran que haya integridad referencial.

Page 17: BBDD.pdf

Normalización de bases de datos 15

Regla No. 11 - La regla de la distribuciónEl sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente endistintos lugares sin que esto afecte o altere a los programas de aplicación.El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datoscorriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que esté conectada por una variedadde redes, pueda funcionar como si estuviera disponible como en una única base de datos en una sola máquina.

Regla No. 12 - Regla de la no-subversiónSi el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar laintegridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que haceposible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido.

Referencias[1] A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387 (http:/ /

www. acm. org/ classics/ nov95/ toc. html)

• E.F.Codd (junio de 1970). "A Relational Model of Data for Large Shared Databanks". Communications of theACM.

• C.J.Date (1994). "An Introduction to Database Systems". Addison-Wesley.

Véase también• 1NF - 2NF - 3NF - BCNF - 4NF - 5NF - DKNF - 6NF - Denormalización• Edgar Frank Codd• Base de datos

Enlaces externos• Bases de Datos: Formas Normales. Optimizar Tablas. (http:/ / www. scourdesign. com/ articulos/ BD-FN. php)• Normalización de bases de datos. (http:/ / www. mysql-hispano. org/ page. php?id=16& pag=1)

Page 18: BBDD.pdf

Modelo relacional 16

Modelo relacionalEl modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados yen la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrardatos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en SanJosé (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos.Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntosde datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar FrankCodd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cadarelación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o tupla), ycolumnas (también llamadas campos).

DescripciónEn este modelo todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, elorden en el que estos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red).Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar por un usuario no experto. Lainformación puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poderpara administrar la información.Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representauna tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa unvalor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cadacolumna también se le puede llamar campo o atributo.Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formalesel Álgebra relacional y el Cálculo relacional. El Álgebra relacional permite describir la forma de realizar unaconsulta, en cambio, el Cálculo relacional sólo indica lo que se desea devolver.El lenguaje más común para construir las consultas a bases de datos relacionales es SQL, Structured QueryLanguage o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemasde gestión de bases de datos relacionales.

EsquemaUn esquema es la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir,determina la identidad de la relación y que tipo de información podrá ser almacenada dentro de ella; en otraspalabras, el esquema son los metadatos de la relación. Todo esquema constará de:• Nombre de la relación (su identificador).• Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un atributo o campo define los

valores permitidos para el mismo, es equivalente al tipo de dato por ejemplo character, integer, date, string, etc.

Page 19: BBDD.pdf

Modelo relacional 17

InstanciasUna instancia de manera formal es la aplicación de un esquema a un conjunto finito de datos. En palabras no tantécnicas, se puede definir como el contenido de una tabla en un momento dado, pero también es valido referirnos auna instancia cuando trabajamos o mostramos únicamente un subconjunto de la información contenida en unarelación o tabla, como por ejemplo:• Ciertos caracteres y números (una sola columna de una sola fila).• Algunas o todas las filas con todas o algunas columnas

• Cada fila es una tupla. El número de filas es llamado cardinalidad.• El número de columnas es llamado aridad o grado.

Base de datos relacionalUna base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y campos(columnas), que se vinculan entre sí por un campo en común, en ambos casos posee las mismas características comopor ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador oclave. A esta manera de construir bases de datos se le denomina modelo relacional.Estrictamente hablando el término se refiere a una colección específica de datos pero a menudo se le usa, en formaerrónea como sinónimo del software usado para gestionar esa colección de datos. Ese software se conoce comoSGBD (sistema gestor de base de datos) relacional o RDBMS (del inglés relational database management system).Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos,el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima.Entre las ventajas de este modelo están:1. Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.2. Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados

dependientes.3. Favorece la normalización por ser más comprensible y aplicable.

Véase también• Hugh Darwen• Bases de datos• Modelo de Datos• Álgebra relacional• Cálculo relacional• Modelo entidad-relación• SQL Lenguaje de consulta estructurado.• Tabla• Registro• Campo

Page 20: BBDD.pdf

Modelo entidad-relación 18

Modelo entidad- relación

Ejemplo de diagrama E-R.

Un diagrama o modeloentidad-relación (a veces denominadopor su siglas, E-R "Entity relationship",o, "DER" Diagrama de EntidadRelación) es una herramienta para elmodelado de datos de un sistema deinformación. Estos modelos expresanentidades relevantes para un sistema deinformación así como susinterrelaciones y propiedades.

ModeladoEntidad-Relación

El Modelo Entidad-Relación, también conocido como DER (diagramas entidad-relación) es una herramienta demodelado para bases de datos, propuesto por Peter Chen en 1976, mediante el cual se pretende 'visualizar' los objetosque pertenecen a la Base de Datos como entidades (se corresponde al concepto de clase, cada tupla representaría unobjeto, de la Programación Orientada a Objetos) las cuales tienen unos atributos y se vinculan mediante relaciones.

Es una representación conceptual de la información. Mediante una serie de procedimientos se puede pasar delmodelo E-R a otros, como por ejemplo el modelo relacional.El modelado entidad-relación es una técnica para el modelado de datos utilizando diagramas entidad relación.No es la única técnica pero sí la más utilizada. Brevemente consiste en los siguientes pasos:

1. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos).2. Se hace una lista de los sustantivos y verbos que aparecen.3. Los sustantivos son posibles entidades o atributos.4. Los verbos son posibles relaciones.5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles.6. Se elabora el diagrama (o diagramas) entidad-relación.7. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en

el diagrama.Dado lo rudimentario de esta técnica se necesita cierto entrenamiento y experiencia para lograr buenos modelos dedatos.El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras técnicas para lograr un modelodirectamente implementable en una base de datos. Brevemente:• Transformación de relaciones múltiples en binarias.• Normalización de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y

viceversa).• Conversión en tablas (en caso de utilizar una base de datos relacional).

Page 21: BBDD.pdf

Modelo entidad-relación 19

Base Teórica y ConceptualEl modelo entidad-relación se basa en los conceptos descritos a continuación para representar un modelo de la vidareal.

EntidadRepresenta una “cosa” u "objeto" del mundo real con existencia independiente, es decir, se diferencia unívocamentede cualquier otro objeto o cosa, incluso siendo del mismo tipo, o una misma entidad.Algunos Ejemplos:• Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos).• Un automóvil. (Aunque sean de la misma marca, el mismo modelo,..., tendrán atributos diferentes, por ejemplo, el

número de bastidor).• Una casa (Aunque sea exactamente igual a otra, aún se diferenciará en su dirección).Una entidad puede ser un objeto con existencia física como: una persona, un animal, una casa, etc. (entidadconcreta), o un objeto con existencia conceptual como: un puesto de trabajo, una asignatura de clases, un nombre,etc.(entidad abstracta). Una entidad está descrita y se representa por sus características o atributos. Por ejemplo, laentidad Persona puede llevar consigo las características: Nombre, Apellido, Género, Estatura, Peso, Fecha denacimiento, etc...

Conjunto de entidadesEs una colección de entidades que comparten los mismos atributos o características.Ejemplos:• Todos los atletas que participan en los Juegos Olímpicos, comparten sus atributos: nombre, número de

identificación, edad, peso, categoría...• Todos los países del mundo, comparten las características: nombre, continente, área, lengua principal, lengua

secundaria, moneda, etc.

AtributosLos atributos son las propiedades que describen a cada entidad en un conjunto de entidades.Un conjunto de entidades dentro de una entidad, tiene valores específicos asignados para cada uno de sus atributos,de esta forma, es posible su identificación unívoca.Ejemplos:A la colección de entidades Alumnos, con el siguiente conjunto de atributos en común, (id, nombre, edad, semestre),pertenecen las entidades:• (1, Sofia, 18 años, 2)• (2, Josefa, 19 años, 5)• (3, Gabriela, 20 años, 2)• ...Cada una de las entidades pertenecientes a este conjunto se diferencia de las demás por el valor de sus atributos.Nótese que dos o más entidades diferentes pueden tener los mismos valores para algunos de sus atributos, pero nuncapara todos.En particular, los atributos identificativos son aquellos que permiten diferenciar a una instancia de la entidad deotra distinta. Por ejemplo, el atributo identificativo que distingue a un alumno de otro es su número de id.Para cada atributo, existe un dominio del mismo, este hace referencia al tipo de datos que será almacenado o a restricciones en los valores que el atributo puede tomar (Cadenas de caracteres, números, solo dos letras, solo

Page 22: BBDD.pdf

Modelo entidad-relación 20

números mayores que cero, solo números enteros...).Cuando una entidad no tiene un valor para un atributo dado, este toma el valor nulo, bien sea que no se conoce, queno existe o que no se sabe nada al respecto del mismo.

RelaciónDescribe cierta dependencia entre entidades o permite la asociación de las mismas.

Ejemplo:

Dadas dos entidades "Habitación 502" y "Mark", es posible relacionar

que la

habitacion 502 se encuentra ocupada por el huésped de nombre Mark.

Una relación tiene sentido al expresar las entidades que relaciona. En el ejemplo anterior, Un Huésped (entidad), sealoja (relación) en una habitación (entidad).

Conjunto de relacionesConsiste en una colección, o conjunto, de relaciones de la misma naturaleza.Ejemplo:Dados los conjuntos de entidades "Habitación" y "Huésped", todas las relaciones de la forma habitación-huésped,permiten obtener la información de los huéspedes y sus respectivas habitaciones.La dependencia o asociación entre los conjuntos de entidades es llamada participación. En el ejemplo anterior losconjuntos de entidades "Habitación" y "Huésped" participan en el conjunto de relaciones habitación-huésped.Se llama grado del conjunto de relaciones a la cantidad de conjuntos de entidades participantes en la relación.

RestriccionesSon reglas que deben mantener los datos almacenados en la base de datos.

Correspondencia de cardinalidadesDado un conjunto de relaciones en el que participan dos o más conjuntos de entidades, la correspondencia decardinalidad indica el número de entidades con las que puede estar relacionada una entidad dada.Dado un conjunto de relaciones binarias y los conjuntos de entidades A y B, la correspondencia de cardinalidadespuede ser:• Uno a uno: Una entidad de A se relaciona únicamente con una entidad en B y viceversa.• Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B. Pero una entidad en B se

relaciona con una única entidad en A.• Varios a uno: Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se

puede relacionar con 0 o muchas entidades en A.• Varios a varios: Una entidad en A se puede relacionar con 0 o muchas entidades en B y viceversa.

Page 23: BBDD.pdf

Modelo entidad-relación 21

Restricciones de participaciónDado un conjunto de relaciones R en el cual participa un conjunto de entidades A, dicha participación puede ser dedos tipos:• Total: Cuando cada entidad en A participa en al menos una relación de R.• Parcial: Cuando al menos una entidad en A NO participa en alguna relación de R.

ClavesEs un subconjunto del conjunto de atributos comunes en una colección de entidades, que permite identificarunívocamente cada una de las entidades pertenecientes a dicha colección. Asimismo, permiten distinguir entre sí lasrelaciones de un conjunto de relaciones.Dentro de los conjuntos de entidades existen los siguientes tipos de claves:• Superclave: Es un subconjunto de atributos que permite distinguir unívocamente cada una de las entidades de un

conjunto de entidades. Si se añade un atributo al anterior subconjunto, el resultado seguirá siendo una superclave.• Clave candidata: Dada una superclave, si ésta deja de serlo quitando únicamente uno de los atributos que la

componen, entonces ésta es una clave candidata.• Clave primaria: Es una clave candidata, elegida por el diseñador de la base de datos, para identificar

unívocamente las entidades en un conjunto de entidades.Los valores de los atributos de una clave, no pueden ser todos iguales para dos o más entidades.Para poder distinguir unívocamente las relaciones en un conjunto de relaciones R, se deben considerar dos casos:• R NO tiene atributos asociados: En este caso, se usa como clave primaria de R la unión de las claves primarias

de todos los conjuntos de entidades participantes.• R tiene atributos asociados: En este caso, se usa como clave primaria de R la unión de los atributos asociados y

las claves primarias de todos los conjuntos de entidades participantes.Si el conjunto de relaciones, R, sobre las que se pretende determinar la clave primaria está compuesto de relacionesbinarias, con los conjuntos de entidades participantes A y B, se consideran los siguientes casos, según suscardinalidades:• R es de muchos a uno de A a B entonces sólo se toma la clave primaria de A, como clave primaria de R.• R es de uno a muchos de A a B entonces se toma sólo la clave primaria de B, como clave primaria de R.• R es de uno a uno de A a B entonces se toma cualquiera de las dos claves primarias, como clave primaria de R.• R es de muchos a muchos de A a B entonces se toma la unión de los atributos que conforman las claves

primarias de A y de B, como clave primaria de R.

Diagrama entidad-relaciónFormalmente, los diagramas E-R son un lenguaje gráfico para describir conceptos. Informalmente, son simplesdibujos o gráficos que describen la información que trata un sistema de información y el software que lo automatiza,pasos a seguir para el diagrama entidad-relación:1.- Una entidad se relaciona con otra entidad con una linea continua, ya que no lleva flechas, es solo una direccioncontinua.2.- Toda relacion debe de llevar una cardinalidad (determina el nivel de cardinalidad).3.-Una relacion entre dos entidades siempre se va a dar por medio de un rombo (si tienes una entidad alumno, otramateria, se traza una linea en el medio de la linea se pone un rombo, dentro del rombo se pone el alumno se inscribe,el nivel seria uno a muchos ya que el alumno se incribe a varias materias).4- Cada entidad debera tener sus elementos.

Page 24: BBDD.pdf

Modelo entidad-relación 22

EntidadSe representa mediante un rectángulo o "caja" etiquetada en su interior mediante un identificador. Ejemplos deentidades habituales en los sistemas de información son: factura, persona, empleado,salario etc.

AtributoSe representan mediante un círculo o elipse etiquetado mediante un nombre en su interior. Cuando un atributo esidentificativo de la entidad se suele subrayar dicha etiqueta.

RelacionesSe representa mediante un rombo etiquetado en su interior con un verbo. Este rombo se debe unir mediante líneascon las entidades (rectángulos) que relaciona.Por motivos de legibilidad, los atributos no suelen representarse en un diagrama entidad-relación, sino que sedescriben textualmente en otros documentos adjuntos.

Diagramas extendidos

DER extendido

Los diagramas Entidad-Relación nocumplen su propósito con eficacia debido aque tienen limitaciones semánticas. Por esemotivo se suelen utilizar los diagramasEntidad-Relación extendidos que incorporanalgunos elementos más al lenguaje:

Entidades fuertes y débiles

Cuando una entidad participa en unarelación puede adquirir un papel fuerte odébil. Una entidad débil es aquella que nopuede existir sin participar en la relación, esdecir, aquella que no puede serunívocamente identificada solamente porsus atributos. Una entidad fuerte (también conocida como entidad regular) es aquella que sí puede ser identificadaunívocamente. En los casos en que se requiera, se puede dar que una entidad fuerte "preste" algunos de sus atributosa una entidad débil para que, esta última, se pueda identificar.

Las entidades débiles se representan- mediante un doble rectángulo, es decir, un rectángulo con doble línea.

Page 25: BBDD.pdf

Modelo entidad-relación 23

Cardinalidad de las relacionesEl tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación, respectivamente: "1:1","1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más se usa actualmente es el unificado.Otra forma de expresar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con unarelación:• "0" si cada instancia de la entidad no está obligada a participar en la relación.• "1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.• "N" , "M", ó "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo

cualquier número de veces.Ejemplos de relaciones que expresan cardinalidad:• Cada esposo (entidad) está casado (relación) con una única esposa (entidad) y viceversa. Es una relación 1:1.• Una factura (entidad) se emite (relación) a una persona (entidad) y sólo una, pero una persona puede tener varias

facturas emitidas a su nombre. Todas las facturas se emiten a nombre de alguien. Es una relación 1:N.• Un cliente (entidad) puede comprar (relación) varios artículos (entidad) y un artículo puede ser comprado por

varios clientes distintos. Es una relación N:M.

Atributos en relacionesLas relaciones también pueden tener atributos asociados. Se representan igual que los atributos de las entidades. Unejemplo típico son las relaciones de tipo "histórico" donde debe constar una fecha o una hora. Por ejemplo,supongamos que es necesario hacer constar la fecha de emisión de una factura a un cliente, y que es posible emitirduplicados de la factura (con distinta fecha). En tal caso, el atributo "Fecha de emisión" de la factura deberíacolocarse en la relación "se emite".

HerenciaLa herencia es un intento de adaptación de estos diagramas al paradigma orientado a objetos. La herencia es un tipode relación entre una entidad "padre" y una entidad "hijo". La entidad "hijo" hereda todos los atributos y relacionesde la entidad "padre". Por tanto, no necesitan ser representadas dos veces en el diagrama. La relación de herencia serepresenta mediante un triángulo interconectado por líneas a las entidades. La entidad conectada por el vérticesuperior del triángulo es la entidad "padre". Solamente puede existir una entidad "padre" (herencia simple). Lasentidades "hijo" se conectan por la base del triángulo.

Agregación

Ejemplo agregación

Es una abstracción a través de la cuallas relaciones se tratan como entidadesde un nivel más alto. Se utiliza paraexpresar relaciones entre relaciones oentre entidades y relaciones. Serepresenta englobando la relaciónabstraída y las entidades que participanen ella en un rectángulo. En la figurase muestra un ejemplo de agregaciónen el que se representa la situación enla que un profesor, cuando está

Page 26: BBDD.pdf

Modelo entidad-relación 24

impartiendo una clase, puede poner una incidencia ocurrida a lo largo de ésta (se fue la luz, falta la configuración deun determinado software, etc.).

Véase también• Ingeniería del software. Disciplina donde se encuadra el análisis y diseño de datos.• Modelo de datos. Es la visión estática de un sistema de información.• Base de datos. Es la implementación de un modelo de datos.• Modelo relacional. Una técnica formal para describir modelos de datos.• UML. Otro lenguaje que permite describir modelos de datos (entre otras cosas).• Peter Chen. El autor del modelo entidad-relación.

Modelo de datosUn modelo de datos es un lenguaje orientado a describir una Base de Datos. Típicamente un modelo de datospermite describir:• Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que se relacionan.• Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejar

correctamente la realidad deseada.• Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado, modificación y

recuperación de los datos de la base.Otro enfoque es pensar que un modelo de datos permite describir los elementos de la realidad que intervienen en unproblema dado y la forma en que se relacionan esos elementos entre sí.No hay que perder de vista que una Base de Datos siempre está orientada a resolver un problema determinado, por loque los dos enfoques propuestos son necesarios en cualquier desarrollo de software.

Sublenguajes de un Modelo de DatosUn modelo de datos es un lenguaje que, típicamente, tiene dos sublenguajes:• Un Lenguaje de Definición de Datos o DDL (Data definition Language), orientado a describir de una forma

abstracta las estructuras de datos y las restricciones de integridad.• Un Lenguaje de Manipulación de Datos o DML (Data Manipulation Language), orientado a describir las

operaciones de manipulación de los datos.A la parte del DML orientada a la recuperación de datos, usualmente se le llama Lenguaje de Consulta o QL (QueryLanguage).

Una clasificación de los Modelos de DatosUna opción bastante usada a la hora de clasificar los modelos de datos es hacerlo de acuerdo al nivel de abstracciónque presentan:Modelos de Datos Conceptuales

Son los orientados a la descripción de estructuras de datos y restricciones de integridad. Se usanfundamentalmente durante la etapa de Análisis de un problema dado y están orientados a representar loselementos que intervienen en ese problema y sus relaciones. El ejemplo más típico es el ModeloEntidad-Relación.

Page 27: BBDD.pdf

Modelo de datos 25

Modelos de Datos LógicosSon orientados a las operaciones más que a la descripción de una realidad. Usualmente están implementadosen algún Manejador de Base de Datos. El ejemplo más típico es el Modelo Relacional, que cuenta con laparticularidad de contar también con buenas características conceptuales (Normalización de bases de datos).

Modelos de Datos FísicosSon estructuras de datos a bajo nivel implementadas dentro del propio manejador. Ejemplos típicos de estasestructuras son los Árboles B+, las estructuras de Hash, etc.

Véase también• Modelo relacional• Base de datos relacional• Modelo entidad-relación (MER)• Base de datos jerárquica• Base de datos en red

Enlaces externos• Material docente del curso 1.264J / ESD.264 de libre consulta OpenCourseWare en español cuyo tema 6 trata el

modelado de datos [1].• Información General De Modelado De Datos 2010 [2].

Referencias[1] http:/ / mit. ocw. universia. net/ 1. 264J/ OcwWeb/ Civil-and-Environmental-Engineering/

1-264JDatabase--Internet--and-Systems-Integration-TechnologiesFa/ LectureNotes/ index. htm[2] http:/ / sites. google. com/ site/ jalexiscv/ modelosdedatos

Page 28: BBDD.pdf

Tabla (base de datos) 26

Tabla (base de datos)Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por unprograma. Su estructura general se asemeja a la vista general de un programa de Hoja de cálculo.Las tablas se componen de dos estructuras:• Campo: Corresponde al nombre de la columna. Debe ser único y además de tener un tipo de dato asociado.• Registro: Corresponde a cada fila que compone la tabla. Allí se componen los datos y los registros.

Eventualmente pueden ser nulos en su almacenamiento.En la definición de cada campo, debe existir un nombre único, con su tipo de dato correspondiente. Esto es útil a lahora de manejar varios campos en la tabla, ya que cada nombre de campo debe ser distinto entre sí.A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campopuede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos osean el principal indicar a la hora de ordenar los datos contenidos.Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola accesible mediante su nombre osu seudónimo (Alias) (dependiendo del tipo de base de datos elegida).La estructura de las tablas viene dado por la forma de un archivo plano, los cuales en un inicio se componían de unmodo similar.

Véase también• Base de datos relacional• Fila• Columna• Índice

Tipos de TablasTipos de tablas especiales Además de la función estándar de las tablas básicas definidas por el usuario, SQL Serverproporciona los siguientes tipos de tabla que permiten llevar a cabo objetivos especiales en una base de datos:1)Tablas con particiones2)Tablas temporales3)Tablas del sistema4)Tablas anchasTablas con participacionesLas tablas con particiones son tablas cuyos datos se han dividido horizontalmente entre unidades que puedenrepartirse por más de un grupo de archivos de una base de datos. Las particiones facilitan la administración de lastablas y los índices grandes porque permiten obtener acceso y administrar subconjuntos de datos con rapidez yeficacia al mismo tiempo que mantienen la integridad del conjunto. En un escenario con particiones, las operacionescomo, por ejemplo, la carga de datos de un sistema OLTP a un sistema OLAP, pueden realizarse en cuestión desegundos en lugar de minutos u horas en otras versiones. Las operaciones de mantenimiento que se realizan en lossubconjuntos de datos también se realizan de forma más eficaz porque sólo afectan a los datos necesarios en lugar dea toda la tabla.Tiene sentido crear una tabla con particiones si la tabla es muy grande o se espera que crezca mucho, y si alguna delas dos condiciones siguientes es verdadera:

Page 29: BBDD.pdf

Tabla (base de datos) 27

La tabla contiene, o se espera que contenga, muchos datos que se utilizan de manera diferente. Las consultas o lasactualizaciones de la tabla no se realizan como se esperaba o los costos de mantenimiento son superiores a losperíodos de mantenimiento predefinidos. Las tablas con particiones admiten todas las propiedades y característicasasociadas con el diseño y consulta de tablas estándar, incluidas las restricciones, los valores predeterminados, losvalores de identidad y marca de tiempo, los desencadenadores y los índices. Por lo tanto, si desea implementar unavista con particiones que sea local respecto a un servidor, debe implementar una tabla con particiones. Para obtenerinformación para comprender, diseñar e implementar tablas con particiones, vea Tablas e índices con particiones.Tablas temporalesHay dos tipos de tablas temporales: locales y globales. Las tablas temporales locales son visibles sólo para suscreadores durante la misma conexión a una instancia de SQL Server como cuando se crearon o cuando se hizoreferencia a ellas por primera vez. Las tablas temporales locales se eliminan cuando el usuario se desconecta de lainstancia de SQL Server. Las tablas temporales globales están visibles para cualquier usuario y conexión una vezcreadas, y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia deSQL Server.Para obtener más información acerca de las tablas temporales, vea Conceptos básicos para crear y modificar tablas.Tablas del sistemaSQL Server almacena los datos que definen la configuración del servidor y de todas sus tablas en un conjunto detablas especial, conocido como tablas del sistema. Los usuarios no pueden consultar ni actualizar directamente lastablas del sistema si no es a través de una conexión de administrador dedicada (DAC) que sólo debería utilizarse bajola supervisión de los servicios de atención al cliente de Microsoft. Para obtener más información, vea Usar unaconexión de administrador dedicada. Las tablas de sistema se cambian normalmente en cada versión nueva de SQLServer. Puede que las aplicaciones que hacen referencia directamente a las tablas del sistema tengan que escribirse denuevo para poder actualizarlas a una versión nueva de SQL Server con una versión diferente de las tablas de sistema.La información de las tablas del sistema está disponible a través de las vistas de catálogo. Para obtener másinformación, vea Tablas del sistema (Transact-SQL).Tablas anchasUna tabla ancha es una tabla que tiene definido un conjunto de columnas. Las tablas anchas usan las columnasdispersas para aumentar hasta 30.000 el número total de columnas permitidas. El número de índices y estadísticastambién se aumenta hasta 1.000 y 30.000, respectivamente. El tamaño máximo de una fila de una tabla ancha es de8.019 bytes. Por consiguiente, la mayoría de los datos de cualquier fila deben ser NULL. Para crear una tabla anchao convertir una tabla en una tabla ancha, agregue un conjunto de columnas a la definición de tabla. El númeromáximo de columnas no dispersas más las columnas calculadas de una tabla ancha sigue siendo 1.024.Con las tablas anchas, puede crear esquemas flexibles dentro de una aplicación. Puede agregar o quitar columnassiempre que lo desee. Tenga presente que el uso de tablas anchas tiene consideraciones de rendimiento únicas, comounos mayores requisitos de memoria en tiempo de ejecución y en tiempo de compilación. Para obtener másinformación, vea Consideraciones de rendimiento para las tablas anchas.

Page 30: BBDD.pdf

Tabla (base de datos) 28

Tablas persistentesSon aquellas que permiten que los registros sean eliminados o borrados manualmente y tenemos de tres tipos:Base,Vistas, InstantáneosBase.- Es en donde se encuentra toda la información de todos los registros sin que se haga ninguna validaciónadicional.Vistas.- Es una vista o relación que se hace en referencia a una fila o columna especifica.Instantáneos.- Son aquellos registros que se los puede ver de manera inmediata con solo una referencia.

Tablas TemporalesSon aquellas tablas que son eliminadas automáticamente por el motor de base de datos.llllooooo

Columna (base de datos)el empresarial lo mejor ok los 9 unicos En el contexto de una tabla de base de datos relacional, una columna es unconjunto de valores de datos de un simple tipo particular, uno por cada fila de la tabla.[1] Las columnas proporcionanla estructura según la cual se componen las filas.El término campo es frecuentemente intercambiable con el de columna, aunque muchos consideran más correctousar el término campo (o valor de campo) para referirse específicamente al simple elemento que existe en laintersección entre una fila y una columna.Por ejemplo, una tabla que representa compañías pudo tener las siguientes columnas:• ID(identificador entero, único a cada fila)• Nombre (texto)• Dirección 1 (texto)• Dirección 2 (texto)• Ciudad (identificador entero, proviene de una tabla separada de ciudades, de la que cualquier información del

estado o del país puede ser tomada)• Código postal (texto)• Industria (identificador entero, Proviene de una tabla separada de industrias)• etc.Cada fila proporcionaría un valor de los datos para cada columna y después sería entendida como solo simple valorde datos estructurado, en este caso representando a una compañía. Más formalmente, cada fila puede ser interpretadacomo una variable relacional, compuesta por un conjunto de tuplas, con cada tupla consistiendo en los doselementos: el nombre de la columna relevante y el valor que esta fila proporciona para esa columna.

Page 31: BBDD.pdf

Columna (base de datos) 29

Columna 1 Columna 2

Fila 1 Fila 1 Columna1

Fila 1 Columna2

Fila 2 Fila 2 Columna1

Fila 2 Columna2

Fila 3 Fila 3 Columna1

Fila 3 Columna2

Véase también• Tabla• Fila• Columna• Índice

Referencias[1] The term "column" also has equivalent application in other, more generic contexts. See e.g., Flat file database, Table (information).

Registro (base de datos)En informática, y concretamente en el contexto de una base de datos relacional, un registro (también llamado fila otupla) representa un ítem único de datos implícitamente estructurados en una tabla. En términos simples, una tablade una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa unconjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Sele asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índiceaunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.La estructura implícita de un registro y el significado de los valores de sus campos exige que dicho registro seaentendido como una sucesión de datos, uno en cada columna de la tabla. La fila se interpreta entonces como unavariable relacional compuesta por un conjunto de tuplas, cada una de las cuales consta de dos ítems: el nombre de lacolumna relevante y el valor que esta fila provee para dicha columna.Cada columna espera un valor de un tipo concreto.

Véase también• Base de datos relacional• Tabla• Columna• Índice

Page 32: BBDD.pdf

Sistema de gestión de bases de datos 30

Sistema de gestión de bases de datosLos sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipode software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que lautilizan.

HechosLos hechos general de los sistemas de gestor de bases de datos es el de manejar de manera clara, sencilla y ordenadaun conjunto de datos que posteriormente se convertirán en información relevante para una organización.

ObjetivosExisten distintos objetivos que deben cumplir los SGBD:• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de

los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente alusuario. Así, se definen varios niveles de abstracción.

• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico)de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.

• Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar queaquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidosse actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tienedeterminadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistemano debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan laprogramación de este tipo de condiciones.

• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD debengarantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permitenotorgar diversas categorías de permisos.

• Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quieredecir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no sehubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una formamucho más simple que si no se dispusiera de ellos.

• Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos lainformación solicitada y en almacenar los cambios realizados.

Ventajas• Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos). Entre éstas:

• Simplifican la programación de equipos de consistencia.• Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre

consistentes sin importar si hay errores correctamente, etc.• Organizan los datos con un impacto mínimo en el código de los programas.• Bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien

explotados por los desarrolladores.• Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Page 33: BBDD.pdf

Sistema de gestión de bases de datos 31

Inconvenientes1. Típicamente, es necesario disponer de una o más personas que administren de la base de datos, en la misma

forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administrenlos sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hayque balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene.

2. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultascomplejas sobre los datos, entonces es posible que sea mejor usar una planilla de cálculo.

3. Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener conocimiento de lasfuncionalidades del mismo para poder aprovecharlo al máximo.

4. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño,que requiere de gran cantidad de memoria para poder correr.

5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamentealtos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.

Productos SGBD disponibles en el mercado

SGBD libres• MySQL Licencia Dual, depende el uso (no se sabe hasta cuando, ya que la compro Oracle). Sin embargo, existen

2 versiones: una gratuita que sería equivalente a la edicion "express" SQL server de Windows y otra máscompleta de pago, ese pago se haría en la licencia de ella ya que permitiría usarse en otras distribuciones sin usarla licencia GNU.

• PostgreSQL (http:/ / www. postgresql. org Postgresql) Licencia BSD• Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0.• SQLite (http:/ / www. sqlite. org SQLite) Licencia Dominio Público• DB2 Express-C (http:/ / www. ibm. com/ software/ data/ db2/ express/ )• Apache Derby (http:/ / db. apache. org/ derby/ )

SGBD no libres• Advantage Database• dBase• FileMaker• Fox Pro• IBM DB2 Universal Database (DB2 UDB)• IBM Informix• Interbase de CodeGear, filial de Borland• MAGIC• Microsoft Access• Microsoft SQL Server• NexusDB• Open Access• Oracle• Paradox• PervasiveSQL• Progress (DBMS)• Sybase ASE• Sybase ASA

Page 34: BBDD.pdf

Sistema de gestión de bases de datos 32

• Sybase IQ• WindowBase• IBM IMS Base de Datos Jerárquica• CA-IDMS

SGBD no libres y gratuitos• Microsoft SQL Server Compact Edition Basica• Sybase ASE Express Edition para Linux (edición gratuita para Linux)• Oracle Express Edition 10

Véase también• Base de datos• Comparación de sistemas administradores de bases de datos relacionales

SQLSQL es un lenguaje formal declarativo, estandarizado ISO, para manipular información en una base de datos.SQL NO es un acrónimo (Structured Query Language) ya que la ISO lo define con nombre oficial DatabaseLanguage SQL. No es un lenguaje estructurado (puede ser usado en bloques o procedimientos), No es solamentepara "queries" y desde el punto de vista computacional no es un lenguaje ya que no es Turing completo. (Fuentenegación Acrónimo: "Visual Quickstart Guide SQL, 3th edition - Chris Fehily, Peachpit Press")

Orígenes y evoluciónLos orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelorelacional y asociado a éste un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose enestas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que mástarde sería ampliamente implementado por el SGBD (Sistemas Gestores de Bases de Datos) experimental System R,desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en unprograma comercial.El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasaa ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por finestandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el "SQL-86" o"SQL1". Al año siguiente este estándar es también adoptado por la ISO.Sin embargo, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades dedefinición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado yrevisado del SQL llamado "SQL-92" o "SQL2".En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque ladiversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia,el soporte al estándar SQL-92 es general y muy amplio.El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo:

Page 35: BBDD.pdf

SQL 33

Año Nombre Alias Comentarios

1986 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.

1989 SQL-89 Revisión menor.

1992 SQL-92 SQL2 Revisión mayor.

1999 SQL:1999 SQL2000 Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunascaracterísticas orientadas a objetos.

2003 SQL:2003 Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de lascolumnas autonumericas. (Ver Eisenberg et al.: SQL:2003 Has Been Published [1].)

2006 SQL:2006 ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Definemaneras importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos ypublicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten alas aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por elW3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.

2008 SQL:2008 Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipoINSTEAD OF. Añade la sentencia TRUNCATE. (Ver [2].)

Características generalesEl SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionalespermitiendo gran variedad de operaciones en éstos últimos.Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base teórica y suorientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad encodificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas quese utilizarían en un lenguaje de bajo nivel orientado a registros.

OptimizaciónComo ya se dijo arriba, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es unlenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentenciano establece explícitamente un orden de ejecución.El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que sehace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelerauna instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, sepriorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente encada motor de base de datos y depende de muchos factores.Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases dedatos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionandorápidamente.

Page 36: BBDD.pdf

SQL 34

Lenguaje de definición de datos (LDD)El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de lamodificación de la estructura de los objetos de la base de datos. Existen cuatro operaciones básicas: CREATE,ALTER, DROP y TRUNCATE.

CREATEEste comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función,procedimiento o cualquier otro objeto que el motor de la base de datos soporte.

Ejemplo (crear una tabla)

CREATE TABLE 'TABLA_NOMBRE' (

'CAMPO_1' INT,

'CAMPO_2' STRING

)

ALTEREste comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificarel tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.

Ejemplo (agregar columna a una tabla)

ALTER TABLE 'TABLA_NOMBRE' (

ADD NUEVO_CAMPO INT UNSIGNED meel

)

DROPEste comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función,procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentenciaALTER.

Ejemplo

ALTER TABLE ''TABLA_NOMBRE''

(

DROP COLUMN ''CAMPO_NOMBRE1''

)

TRUNCATEEste comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrartodo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es queTRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusulaWHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es enrealidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecutaninguna transacción.

Page 37: BBDD.pdf

SQL 35

Ejemplo

TRUNCATE TABLE ''TABLA_NOMBRE1''

Lenguaje de manipulación de datos (LMD)

DefiniciónUn lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguajeproporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas deconsulta o manipulación de los datos, organizados por el modelo de datos adecuado.El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en unabase de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

INSERTUna sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.

Forma básica

INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES

(''valor1'', [''valor2,...''])

Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valorpor omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas lasrestricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila yse devuelve un error.

Ejemplo

INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto

Jeldrez', 4886850);

Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:

INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...''])

Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'):

INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', 4886850);

Formas avanzadas

Inserciones en múltiples filas

Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez,con una sola sentencia SQL:

INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])

VALUES (''valor1a'', [''valor1b,...'']), (''value2a'',

[''value2b,...'']),...

Esta característica es soportada por DB2, PostgreSQL (desde la versión 8.2), MySQL, y H2.Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'):

Page 38: BBDD.pdf

SQL 36

INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'),

('Alejandro Sosa', '4556550');

Que podía haber sido realizado por las sentencias

INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850');

INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');

Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto a los triggers), ypuede tener diferente rendimiento que la sentencia de inserción múltiple.Para insertar varias filas en MS SQL puede utilizar esa construcción:

INSERT INTO phone_book

SELECT 'John Doe', '555-1212'

UNION ALL

SELECT 'Peter Doe', '555-2323';

Tenga en cuenta que no se trata de una sentencia SQL válida de acuerdo con el estándar SQL (SQL: 2003), debido ala cláusula subselect incompleta.Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila:

INSERT INTO phone_book

SELECT 'John Doe', '555-1212' FROM DUAL

UNION ALL

SELECT 'Peter Doe','555-2323' FROM DUAL

Una implementación conforme al estándar de esta lógica se muestra el siguiente ejemplo, o como se muestra arriba:

INSERT INTO phone_book

SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c)

UNION ALL

SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c)

Copia de filas de otras tablas

Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarladirectamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamientointermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECTpuede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta.Lógicamente, el SELECT se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación.

INSERT INTO phone_book2

SELECT *

FROM phone_book

WHERE name IN ('John Doe', 'Peter Doe')

Una variación es necesaria cuando algunos de los datos de la tabla fuente se está insertando en la nueva tabla, perono todo el registro. (O cuando los esquemas de las tablas no son iguales.)

INSERT INTO phone_book2 ( [name], [phoneNumber] )

SELECT [name], [phoneNumber]

Page 39: BBDD.pdf

SQL 37

FROM phone_book

WHERE name IN ('John Doe', 'Peter Doe')

El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de latabla donde los datos son insertados.

UPDATEUna sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en unatabla.

Forma básica

UPDATE ''tabla'' SET ''columna1'' = ''valor1'' ,''columna2'' =

''valor2'',...

WHERE ''columnaN = ''valorN''

Ejemplo

UPDATE My_table SET field1 = 'updated value' WHERE field2 = 'N';

.

DELETEUna sentencia DELETE de SQL borra uno o más registros existentes en una tabla,

Forma básica

DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''

Ejemplo

DELETE FROM My_table WHERE field2 = 'N';

Recuperación de claveLos diseñadores de base de datos que usan una clave suplente como la clave principal para cada tabla, se ejecutará enel ocasional escenario en el que es necesario recuperar automáticamente la base de datos, generando una claveprimaria de una sentencia SQL INSERT para su uso en otras sentencias SQL. La mayoría de los sistemas nopermiten sentencias SQL INSERT para retornar fila de datos. Por lo tanto, se hace necesario aplicar una solución entales escenarios.Implementaciones comunes incluyen:• Utilizando un procedimiento almacenado especifico de base de datos que genera la clave suplente, realice la

operación INSERT, y finalmente devuelve la clave generada.• Utilizando una sentencia SELECT específica de base de datos, sobre una tabla temporal que contiene la última

fila insertada. DB2 implementa esta característica de la siguiente manera:

SELECT *

FROM NEW TABLE ( INSERT INTO phone_book VALUES ( 'Cristobal

Jeldrez','0426.817.10.30' ) ) AS t

• Utilizando una sentencia SELECT después de la sentencia INSERT con función específica de base de datos, quedevuelve la clave primaria generada por el registro insertado más recientemente.

• Utilizando una combinación única de elementos del original SQL INSERT en una posterior sentencia SELECT.

Page 40: BBDD.pdf

SQL 38

• Utilizando un GUID en la sentencia SQL INSERT y la recupera en una sentencia SELECT.• Utilizando la función de PHP mysql_insert_id() de MySQL después de la sentencia INSERT.• Utilizando un INSERT con la cláusula RETURNING para Oracle, que sólo se puede utilizar dentro de un

PL/SQL bloque, en el caso de PostgreSQL se puede usar también tanto con SQL como con PL/SQL.

INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' )

RETURNING phone_book_id INTO v_pb_id

• En el caso de MS SQL se puede utilizar la siguiente instrucción:

Set NoCount On;

INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' );

Select @@Identity as ID

Disparadores (Triggers)Los desencadenantes, también conocidos como disparadores, (triggers en inglés) son definidos sobre la tabla en laque opera la sentencia INSERT, los desencadenantes son evaluados en el contexto de la operación. DesencadenantesBEFORE INSERT permiten la modificación de los valores que se insertará en la tabla. Desencadenantes AFTERINSERT no puede modificar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otrastablas, por ejemplo para aplicar mecanismos de auditoría.

Sistemas de gestión de base de datosLos sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético:• DB2• Firebird• Informix• Interbase• MySQL• Oracle• PostgreSQL• Pervasive• SQLite• SQL Server• Sybase ASE

Véase también• SQL injection• FSQL• AQL• Modelo de base de datos

Referencias[1] http:/ / www. acm. org/ sigmod/ record/ issues/ 0403/ index. html#standards[2] http:/ / iablog. sybase. com/ paulley/ 2008/ 07/ sql2008-now-an-approved-iso-international-standard/

Page 41: BBDD.pdf

Fuentes y contribuyentes del artículo 39

Fuentes y contribuyentes del artículoBase de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=35892219  Contribuyentes: .Sergio, Achicoria, AdeVega, Airunp, Aleator, Alexav8, Alhen, Alphabravotango, Andreasmperu,Angus, Armando-Martin, Armin76, Arrt-932, Ascánder, Baiji, Baldur71, Biasoli, Bigsus, BlackBeast, Carrillo1, Cesar4545, ChaTo, Cinabrium, Claudio Elias, Comae, Daniel G., Dferg,Diegusjaimes, Diotime, Dodo, Dpr, Dreitmen, Drini, Drini2, Ecemaml, Ediazrod, Edub, Eli22, Elisardojm, Elwikipedista, Equi, Er Komandante, FAR, FrancoGG, GermanX, Gizmo II,Globalphilosophy, Gonis, Grivadeneira, HUEVOCHIPS, Hispa, Humbefa, JMPerez, Jesuja, Jgalgarra, Jonik, JorgeGG, Jsanchezes, Jugones55, Klondike, Kokoo, Lazamazu, Leonardo, Levhita,Lourdes Cardenal, Maldoror, Mansoncc, ManuelGR, Matdrodes, Mikelo, Moriel, Mortadelo2005, Muro de Aguas, Murven, Máximo de Montemar, Napoleón333, Nelauxiliadora, No sé qué nickponer, Nonick, Nubecosmica, OMenda, Opinador, Orgullomoore, Otermin, PACO, Pabloab, Pablotorres, Pacolope, PeiT, Pieter, PoLuX124, Ppfk, Renacimiento, RoyFocker, Rsg,Rumpelstiltskin, Sabbut, Sanbec, Sauron, Shasa, Superzerocool, Taichi, Tano4595, Taragui, Tirithel, Tomatejc, Tostadora, Wesisnay, Xenoforme, Xpel1, Yamaneko, Yrithinnd, ZackBsAs,Zanorte, Zuirdj, conversion script, 658 ediciones anónimas

Base de datos relacional  Fuente: http://es.wikipedia.org/w/index.php?oldid=36262055  Contribuyentes: Alhen, Aloriel, Annihilator SP, Aurionfox, Caligari, Developer, Dferg, Diegusjaimes,Dodo, Dreitmen, Elabra sanchez, Elsenyor, Gao.mza, GermanX, Gonzalogc, Guevonaso, Humbefa, Isha, Jesuja, Juan Cabral, Jynus, LU2JGP, Lancaster, Laura Fiorucci, Leonel.canton,Leugim1972, Lungo, Matdrodes, Mixtli5, Nicop, RoyFocker, Rrupo, SPZ, Str0b0s, Superzerocool, Tirithel, Tomatejc, VARGUX, Vitorres, Zendel, 150 ediciones anónimas

Normalización de bases de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=36304010  Contribuyentes: Airunp, Akhram, Alagoro, Alexav8, Almorca, Andreasmperu, Andvarp, Angus,Antur, BL, Barct, Bedwyr, BlackBeast, C'est moi, Changa, Cumanacr, David0811, Deniel77, Dferg, Diegusjaimes, Dodo, Dovidena, Ecelan, Edmenb, Edtruji, Egaida, Elielsardanons, Eluseche,Elwikipedista, Er Komandante, FAR, Fama.arciniega, Filipo, Gaeddal, Gatra, GermanX, Goofys, Gusgus, Hernan Beati, Humbefa, Humberto, Isha, Jago84, Javierito92, Jkarretero,Juandiegocano, Jugones55, Jynus, Kuanto, Libertad y Saber, Lucien leGrey, Mansoncc, ManuelMontiel, Manuelt15, Manwë, Matdrodes, Mencey, Merlyn333, Miguelo on the road,Mortadelo2005, Mushii, Máximo de Montemar, Netito777, Pabloab, Paintman, Pan con queso, PoLuX124, Queninosta, RafaRamirez, Rayleon, RoyFocker, Rrupo, Rsg, Snakeyes,Spirit-Black-Wikipedista, Taichi, Tirithel, Tostadora, Truor, Tyrannosaurusreflex, U.gonzalez, Valyag, Verajm, Vitorres, Walter closser, Xatufan, Yeza, 627 ediciones anónimas

Modelo relacional  Fuente: http://es.wikipedia.org/w/index.php?oldid=35730789  Contribuyentes: Airunp, Amadís, Antur, Barcex, CommonsDelinker, Delphidius, Diosa, Dogor, Edmenb,Eligna, Eliomaximus, Emijrp, GermanX, Guanxito, Humbefa, Humberto, Javierito92, Jesuja, Lanselott, Leonel.canton, Lhombria, Ltourn, Magomaitin, Maldoror, Manwë, Mario modesto,Matdrodes, Ooscarr, PoLuX124, RoyFocker, Rrupo, Snakeyes, Super braulio, Tano4595, Tecnicoespaniol, U.gonzalez, Vitorres, Xatufan, 106 ediciones anónimas

Modelo entidad- relación  Fuente: http://es.wikipedia.org/w/index.php?oldid=36055036  Contribuyentes: 333, Afpineda, Airunp, Aledesanfer95, Amadís, Antur, BlackBeast, Carmin, Dani26,David.rgh, David0811, DiegoFlorez, Diegusjaimes, Djiraan, Eligna, Emijrp, Faelomx, Gacpro, Galandil, Gazpa, Gusgus, Humberto, J4550, Jatrobat, Javierito92, Jkarretero, Jorgechp, Jugones55,Julian Mendez, Jvlivs, Jynus, Kved, LU2JGP, Magda BD, Mansoncc, Manuel de Buenaga (UEM), Manwë, Matdrodes, Mcruz.uem, Mortadelo2005, MotherForker, Netito777, Nicop, Nikoguti2006, Parras, Pinar, Pinchosdj04, Platonides, PoLuX124, Porao, Rastrojo, Raulgmo, Retama, RoyFocker, Shaktale, Siabef, Sking, Snakeyes, Taragui, Thingg, Tirithel, Toge, Tonylopez1023,Torquemado, Vitorres, Wilfredor, XalD, 427 ediciones anónimas

Modelo de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=35791964  Contribuyentes: Ackounts, Aconcagua2010, Calsbert, Ctrl Z, Emijrp, Farisori, Fcarpani, Humbefa, Jalexiscv,Jesuja, Jlinfante, Jvlivs, Keres, Mmontoro, Navazuelo, Pinar, Pino, Raystorm, SPZ, Taichi, Tirithel, Vitorres, 33 ediciones anónimas

Tabla (base de datos)  Fuente: http://es.wikipedia.org/w/index.php?oldid=36206141  Contribuyentes: Afoone, Carlos G. Ramirez, CommonsDelinker, Diegusjaimes, Dreitmen, Er Komandante,GermanX, Greek, Luis 93 a, Maldoror, Matdrodes, Nixón, PoLuX124, Queninosta, Superzerocool, Tirithel, Walter closser, XalD, 86 ediciones anónimas

Columna (base de datos)  Fuente: http://es.wikipedia.org/w/index.php?oldid=36305917  Contribuyentes: Asfarer, CommonsDelinker, Filipo, GermanX, Markoszarrate, 7 ediciones anónimas

Registro (base de datos)  Fuente: http://es.wikipedia.org/w/index.php?oldid=36176888  Contribuyentes: Camilo, CommonsDelinker, Damifb, Diegusjaimes, Dodo, Draulius, Eligna, GermanX,Humberto, Jesuja, Lucien leGrey, Manuel Trujillo Berges, Matdrodes, Ortisa, Platonides, Rrupo, Super braulio, Tirithel, Uruk, 44 ediciones anónimas

Sistema de gestión de bases de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=36131646  Contribuyentes: Biasoli, Diegusjaimes, Dodo, Eligna, Humbefa, Riviera, Robertorp, Superbraulio, Tirithel, 42 ediciones anónimas

SQL  Fuente: http://es.wikipedia.org/w/index.php?oldid=36314192  Contribuyentes: AdeVega, Airunp, Aitormoreno, Alexav8, Alhen, Alvaro qc, Andre Engels, Andreasmperu, AstroNomo,Balderai, Baldur71, Beto29, Biasoli, Calsbert, Cameri, Cinabrium, Clementito, Cobalttempest, Cosmico085, Cratón, Damifb, Diegazo, Diegusjaimes, Dnog, Dodo, Dorieo, Edub, Ejmeza,ElWiau, Eloy, Elwikipedista, ErKURITA, Fache, Farm74, FrancoGG, Gacpro, Gcsantiago, GermanX, Grimpi, Gurgut, Götz, Hotpadrino, Humbefa, Icvav, Ingenioso Hidalgo, Isha, J.delanoy,JMPerez, Jac, Javierito92, Jmmuguerza, Jmrubira, Johnbojaen, JorgeGG, Joseaperez, Jotagarzon, Jsanchev, Jstitch, Juancmartinezh, Juanenriquez, Juank8041, Jugones55, Juliandt, Jvlivs, Kaser,Laura Fiorucci, LordT, Lourdes Cardenal, Lucien leGrey, Magomaitin, Mahadeva, Marcelomasci, Matdrodes, MatiasAB, McMalamute, Moriel, Muro de Aguas, Murphy era un optimista, Mushii,Mutari, Nelson.cruz, Netito777, No sé qué nick poner, Ofigue, Oscar ., PACO, Pan con queso, Pieter, Pipepupo, PoLuX124, Porao, Qu3tzalc0atl5, Queninosta, R0MAN0, Racso, Resped,Rgfernandez, Roberpl, Rodrigouf, Rosette, Rrupo, Sabbut, Sanbec, Santiz, Siabef, Subienkov, Superzerocool, Template namespace initialisation script, Tomatejc, Triku, Ty25, Valyag, Vanbasten23, Warlockzero, Wilfredor, WingMaster, Yrithinnd, Zam, Ñuño Martínez, 430 ediciones anónimas

Page 42: BBDD.pdf

Fuentes de imagen, Licencias y contribuyentes 40

Fuentes de imagen, Licencias y contribuyentesArchivo:OOo-2.0-Base-ca.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:OOo-2.0-Base-ca.png  Licencia: GNU Lesser General Public License  Contribuyentes: German,IradigalescImage:Emp Tables (Database).PNG  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Emp_Tables_(Database).PNG  Licencia: Public Domain  Contribuyentes: User:JamesssssArchivo:TablaRelacional2.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:TablaRelacional2.png  Licencia: Creative Commons Attribution 3.0  Contribuyentes: User:EdtrujiArchivo:DependenciaFunional.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:DependenciaFunional.png  Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:EdtrujiArchivo:DependenciaFunional2.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:DependenciaFunional2.png  Licencia: GNU Free Documentation License  Contribuyentes:User:EdtrujiArchivo:Ejemplo Diagrama E-R extendido.PNG  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Ejemplo_Diagrama_E-R_extendido.PNG  Licencia: Creative CommonsAttribution-Sharealike 2.5  Contribuyentes: Afpineda, Jcfidy, Ma-Lik, Nagy, The Evil IP address, 10 ediciones anónimasArchivo:Diagrama Entidad Relacion.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Diagrama_Entidad_Relacion.svg  Licencia: GNU Free Documentation License Contribuyentes: User:WilfredorArchivo:Ejemplo de Agregación.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Ejemplo_de_Agregación.svg  Licencia: Creative Commons Attribution 3.0  Contribuyentes:User:Manuel de Buenaga y Mª Cruz Gaya, User:Wilfredor

Page 43: BBDD.pdf

Licencia 41

LicenciaCreative Commons Attribution-Share Alike 3.0 Unportedhttp:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/