lunes, 27 de julio de 2009

claves

Clave primaria
En el diseño de bases de datos relacionales, se llama clave primaria a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No pueden haber dos filas en una tabla que tengan la misma clave primaria.

Una llave primaria es un campo único , irrepetible que sirve para identificar los registros de una tabla como distintos, además de que sirve para hacer relaciones 1:1, 1:M , M:M (uno a uno, uno a muchos, muchos a muchos) entre tablas, sin las llaves primaria las bases de dato relacionales no tendrían sentido y siempre existiría información repetida

Caracteristicas
Una clave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a las filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guias telefónicas y diccionarios no pueden usar nombres o palabras o números del sistema decimal de Dewey como claves candidatas, porque identifican unívocamente números de teléfono o palabras.

Una clave primaria es un caso especial de clave única. La mayor diferencia es que para claves únicas, no se impone automáticamente la restricción implícita NOT NULL, mientras que para claves primarias, sí. Así, los valores en columnas de clave única pueden o no ser NULL. Otra diferencia es que las claves primarias deben definirse por medio de otra sintaxis.

como se representa en un diagrama

textoalternativo



en Mysql como se crea una llave primaria

Las claves primarias están definidas el estándar ANSI SQL, mediante la directiva PRIMARY KEY. La sintaxis para aplicar tal directiva a una tabla existente está definida en SQL:2003 de esta manera:
ALTER TABLE
ADD [ CONSTRAINT ]
PRIMARY KEY ( {, }... )

La clave primaria puede especificarse directamente en el momento de la creación de la tabla también. En el estándar SQL, las claves primarias pueden estar compuestas por una o más columnas. Cada columna que forme parte de la clave primaria queda implícitamente definida como NOT NULL. Nótese que algunos sistemas de bases de datos requieren que se marque explícitamente a las columnas de clave primaria como NOT NULL.
CREATE TABLE nombre_de_la_tabla (
id_col INT, col2 CHARACTER VARYING(20),
...
CONSTRAINT clapri_tabla PRIMARY KEY(id_col),
...
)

En el caso en que la clave primaria sea una sola columna, ésta puede marcarse como tal por medio de la siguiente sintaxis:
CREATE TABLE nombre_de_la_tabla (
id_col INT PRIMARY KEY,
col2 CHARACTER VARYING(20),
...
)

Clave candidata
Una clave candidata es una superclave en la que ninguno de sus subconjuntos es una superclave de la relación. El atributo o conjunto de atributos de la relación es una clave candidata para si y sólo si satisface las siguientes propiedades:

Unicidad: nunca hay dos tuplas en la relación con el mismo valor de .
Irreducibilidad (minimalidad): ningún subconjunto de tiene la propiedad de unicidad, es decir, no se pueden eliminar componentes de sin destruir la unicidad.

Cuando una clave candidata está formada por más de un atributo, se dice que es una clave compuesta. Una relación puede tener varias claves candidatas. Por ejemplo, en la relación OFICINA, el atributo Población no es una clave candidata ya que puede haber varias oficinas en una misma población. Sin embargo, ya que la empresa asigna un código único a cada oficina, el atributo Onum sí es una clave candidata de la relación OFICINA. También son claves candidatas de esta relación los atributos Teléfono y Fax.

Clave alternativa
Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes.

lunes, 29 de junio de 2009

tipos de datos en mysql

tipos de datos en mysql

Al diseñar nuestras tablas tenemos que especificar el tipo de datos y tamaño que podrá almacenar cada campo. Una correcta elección debe procurar que la tabla no se quede corta en su capacidad, que destine un tamaño apropiado a la longitud de los datos, y la máxima velocidad de ejecución

Básicamente mysql admite dos tipos de datos: números y cadenas de carácteres. Junto a estos dos grandes grupos, se admiten otros tipos de datos especiales: formatos de fecha, etc.
datos numéricosEn este tipo de campos solo pueden almacenarse números, positivos o negativos, enteros o decimales, en notación hexadecimal, cientifica o decimal.Los tipos numéricos tipo integer admiten los atributos SIGNED y UNSIGNED indicando en el primer caso que pueden tener valor negativo, y solo positivo en el segundo.
Los tipos numéricos pueden además usar el atributo ZEROFILL en cuyo caso los números se completaran hasta la máxima anchura disponible con ceros (column age INT(5) zerofill => valor 23 se almacenará como 00023)

BIT o BOOL, para un número entero que puede ser 0 ó 1

TINYINT es un número entero con rango de valores válidos desde -128 a 127. Si se configura como unsigned (sin signo), el rango de valores es de 0 a 255

SMALLINT, para números enteros, con rango desde -32768 a 32767. Si se configura como unsigned, 0 a 65535.

MEDIUMINT para números enteros; el rango de valores va desde -8.388608 a 8388607. Si se configura como unsigned, 0 a 16777215

INT para almacenar números enteros, en un rango de -2147463846 a 2147483647. Si configuramos este dato como unsigned, el rango es 0 a 4294967295

BIGINT número entero con rango de valores desde -9223372036854775808 a 9223372036854775807. Unsigned, desde 0 a 18446744073709551615.

FLOAT (m,d) representa números decimales. Podemos especificar cuantos dígitos (m) pueden utilizarse (término también conocido como ancho de pantalla), y cuantos en la parte decimal (d). Mysql redondeará el decimal para ajustarse a la capacidad.

DOUBLE Número de coma flotante de precisión doble. Es un tipo de datos igual al anterior cuya única diferencia es el rango numérico que abarca

DECIMAL almacena los números como cadenas.
Caracteres o cadenas

CHAR Este tipo se utiliza para almacenar cadenas de longitud fija. Su longitud abarca desde 1 a 255 caracteres.

VARCHAR Al igual que el anterior se utiliza para almacenar cadenas, en el mismo rango de 1-255 caracteres, pero en este caso, de longitud variable. Un campo CHAR ocupará siempre el máximo de longitud que le hallamos asignado, aunque el tamaño del dato sea menor (añadiendo espacios adicionales que sean precisos). Mientras que VARCHAR solo almacena la longitud del dato, permitiendo que el tamaño de la base de datos sea menor. Eso si, el acceso a los datos CHAR es mas rápido que VARCHAR.

No pueden alternarse columnas CHAR y VARCHAR en la misma tabla. Mysql cambiará las columnas CHAR a VARCHAR. Tambien cambia automaticamente a CHAR si usamos VARCHAR con valor de 4 o menos.

TINYTEXT, TINYBLOB para un máximo de 255 caracteres. La diferencia entre la familia de datatypes text y blob es que la primera es para cadenas de texto plano (sin formato) y case-insensitive (sin distinguir mayusculas o minusculas) mientras que blob se usa para objetos binarios: cualquier tipo de datos o información, desde un archivo de texto con todo su formato (se diferencia en esto de el tipo Text) hasta imágenes, archivos de sonido o video

TEXT y BLOB se usa para cadenas con un rango de 255 - 65535 caracteres. La diferencia entre ambos es que TEXT permite comparar dentro de su contenido sin distinguir mayusculas y minusculas, y BLOB si distingue.

MEDIUMTEXT, MEDIUMBLOB textos de hasta 16777215 caracteres.

LONGTEXT, LONGBLOB, hasta máximo de 4.294.967.295 caracteres
VariosDATE para almacenar fechas. El formato por defecto es YYYY MM DD desde 0000 00 00 a 9999 12 31.

DATETIME Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos

TIMESTAMP Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo

TIME almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'

YEAR almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.

SET un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.

ENUM es igual que SET, pero solo se puede almacenar uno de los valores de la lista


Tipos de datos espaciales de MySQL

MySQL tiene tipos de datos que corresponden a las clases OpenGIS. Algunos de estos tipos almacenan valores geométricos simples:

GEOMETRY

POINT

LINESTRING

POLYGON

GEOMETRY can store geometry values of any type. The other single-value types, POINT and

LINESTRING and POLYGON, restrict their values to a particular geometry type.
The other data types hold collections of values:

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION

GEOMETRYCOLLECTION puede almacenar objetos de cualquier tipo. Los otros tipos de colección, MULTIPOINT y MULTILINESTRING y MULTIPOLYGON y GEOMETRYCOLLECTION, restringen sus miembros a aquellos que sean de un tipo de geometría particular.

miércoles, 24 de junio de 2009

MySQL

¿que esz mysql?

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.[1] MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C.


Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es propietario y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.


Caracteristicas del mysql

Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad.


Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar:


• Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.

• Disponibilidad en gran cantidad de plataformas y sistemas. • Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.

• Transacciones y claves foráneas.

• Conectividad segura.

• Replicación.

• Búsqueda e indexación de campos de texto.

MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones.
MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido.
MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada.


• Un amplio subconjunto de ANSI SQL 99, y varias extensiones.

• Soporte a multiplataforma • Procedimientos almacenados • Disparadores (triggers)

• Cursores

• Vistas actualizables

• Soporte a VARCHAR

• INFORMATION_SCHEMA

• Modo Strict

• Soporte X/Open XA de transacciones distribuidas; transacción en dos fases como parte de esto, utilizando el motor InnoDB de Oracle

• Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial)

• Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de recuperación (savepoints) con InnoDB

• Soporte para SSL

• Query caching

• Sub-SELECTs (o SELECTs anidados)

• Réplica con un maestro por esclavo, varios esclavos por maestro, sin soporte automático para múltiples maestros por esclavo.

• indexing y buscando campos de texto completos usando el motor de almacenamiento MyISAM

• Embedded database library

• Soporte completo para Unicode

• Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster

• Shared-nothing clustering through MySQL Cluster

• Usa GNU Automake, Autoconf, y Libtool para portabilidad

• Uso de multihilos mediante hilos del kernel.

• Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice

• Tablas hash en memoria temporales

• El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL

• Completo soporte para operadores y funciones en cláusulas select y where.

• Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación

• Seguridad: ofrece un sistema de contraseñas y privilegios seguro mediante verificación basada en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor.

• Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros.

• Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).

• Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix.

• En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida.

• MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL.

lunes, 15 de junio de 2009

MERE E/G

Generalización

El concepto de herencia define otro tipo de relación entre clases (generalización) donde una clase comparte estructura y/o comportamiento con una o más clases. El término superclase se refiere a la clase que guarda la información común, mientras que el término subclase se refiere a cada uno de los descendientes de la superclase.

A partir de las relaciones de generalización se crea una jerarquía de abstracción en la cual una subclase puede heredar de una o más superclases. Es por ésto que a la herencia también se le suele denominar jerarquía ``es una'' o ``clase de''.

Una subclase hereda todos los atributos, operaciones y relaciones definidos en alguna de sus superclases, de forma que los atributos y operaciones comunes se definen en el nivel más alto de la jerarquía. Las subclases se pueden ampliar (especializar) con atributos y operaciones adicionales, que se aplican sólo a ese nivel de la jerarquía. Además una subclase puede tener su propia implementación de una operación de la superclase (polimorfismo).

Ya que la herencia no es una relación entre objetos diferentes, este tipo de relaciones no se nombra, no se utilizan roles, ni se expresa multiplicidad, utilizándose la relación generalización sin adornos.

Existen dos formas básicas de identificar herencia en un modelo, por generalización o por especialización:

Generalización:
La generalización proporciona la capacidad de crear superclases que encapsulan la estructura y el comportamiento común a varias clases.

Especialización:
La especialización proporciona la capacidad de crear subclases que representan refinamientos de una superclase, generalmente a nadiendo estructura y comportamiento a las nuevas subclases. Se a naden subclases para especializar el comportamiento de clases ya existentes. Las operaciones heredadas pueden ser reescritas por una subclase, lo que conocemos como polimorfismo, pero por el contrario, la subclase no debería proporcionar una estructura o comportamiento menor que el de su superclase.

Disyunción
(del latín disiunctĭo, -ōnis 'desunión') significa separar o desunir. Tiene significados en lógica, filosofía, semántica lingüística y sintaxis, sin embargo todos son muy similares y se refieren a un operador sobre dos o más elementos que resulta en verdad si y sólo si al menos un elemento es verdadero.

sábado, 6 de junio de 2009

Diagramas de relacionales

automoviles



medico-paciente



Tienda

QUE ES LA UML

¿que es la uml?
Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

¿que es el modelado de objetos?
La arquitectura dirigida por modelos (Model-Driven Architecture o MDA) es un acercamiento al diseño de software, propuesto y patrocinado por el Object Managemente Group. MDA se ha concebido para dar soporte a la ingeniería dirigida a modelos de los sistemas software. MDA es una arquitectura que proporciona un conjunto de guías para estructurar especificaciones expresadas como modelos.
Usando la metodología MDA, la funcionalidad del sistema será definida en primer lugar como un modelo independiente de la plataforma (Platform-Independent Model o PIM) a través de un lenguaje específico para el dominio del que se trate. Dado un modelo de definición de la plataforma (Platform Definition Model o PDM) correspondiente a CORBA, .NET, web, etc., el modelo PIM puede traducirse entonces a uno o más modelos específicos de la plataforma (Platform-specific models o PSMs) para la implementación correspondiente, usando diferentes lenguajes específicos del dominio, o lenguajes de propósito general como Java, C#, Python, etc. La traducción entre el PIM y los PSMs se realizan normalmente utilizando herramientas automatizadas, como herramientas de transformación de modelos (por ejemplo aquellas herramientas que cumplen con el nuevo estandar de OMG denominado QVT). El proceso completo se encuentra documentado en un documento que actualiza y mantiene OMG denominado la Guía MDA.Martin Sullon

En UML 2.0 hay 13 tipos diferentes de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizarlos jerárquicamente, como se muestra en la figura de la derecha.

Los Diagramas de Estructura enfatizan en los elementos que deben existir en el sistema modelado:

* Diagrama de clases
* Diagrama de componentes
* Diagrama de objetos
* Diagrama de estructura compuesta (UML 2.0)
* Diagrama de despliegue
* Diagrama de paquetes

Los Diagramas de Comportamiento enfatizan en lo que debe suceder en el sistema modelado:

* Diagrama de actividades
* Diagrama de casos de uso
* Diagrama de estados

Los Diagramas de Interacción son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:

* Diagrama de secuencia
* Diagrama de comunicación, que es una versión simplificada del Diagrama de colaboración (UML 1.x)
* Diagrama de tiempos (UML 2.0)
* Diagrama global de interacciones o Diagrama de vista de interacción (UML 2.0)



Integridad referencial
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda
La integridad referencial es una propiedad deseable en las bases de datos. Gracias a la integridad referencial se garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.
Todas las bases de datos relacionales gozan de esta propiedad gracias a que el software gestor de base de datos vela por su cumplimiento. En cambio, las bases de datos jerárquicas requieren que los programadores se aseguren de mantener tal propiedad en sus programas.

Integridad de datos
El término integridad de datos se refiere a la corrección y completitud de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energía. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender.
Una de las funciones importantes de un DBMS relacional es preservar la integridad de sus datos almacenados en la mayor medida posible.

viernes, 29 de mayo de 2009

Modulo identidad relación

diagrama 1



diagrama 2



diagrama 3



diagrama 4



diagrama 5



diagrama 6


miércoles, 20 de mayo de 2009

Operaciones del modelo relacional

Operaciones del modelo relacional

Todo lenguaje de manejo de datos (LMD) sirve para que los diferentes usuarios consulten y tengan acceso al contenido de la base de datos. Estos lenguajes se clasifican en:

Lenguajes Procedimentales: en estos lenguajes el usuario ordena al DBMS que realice una serie de operaciones con la b/d para obtener el resultado deseado.

Lenguajes No Procedimentales: en estos, el usuario describe la información que desea sin indicar un procedimiento específico para obtenerla.

El Álgebra Relacional es uno de los dos lenguajes formales para la consulta de datos en una base de datos. Está clasificado como un lenguaje procedimental.

Consta de cinco operaciones básicas o primitivas: selección, proyección, operaciones de conjunto, renombrar, join y división.

Toda operación, en Álgebra Relacional, utiliza una o dos relaciones como argumento y produce siempre una nueva relación.

Operadores de Conjuntos

Las bases de datos relacionales están basadas en el concepto matemático de relaciones entre conjuntos. Así las operaciones que se pueden efectuar entre relaciones son tanto las comunes a los conjuntos, unión, intersección, diferencia, producto cartesiano; como las específicas de las relaciones, selección, proyección, etc. A esto se le llama el álgebra relacional. Si r y s son relaciones con todos los dominios iguales, esto es, el mismo esquema se les puede aplicar las operaciones típicas de conjuntos:

Operaciones:

Unión

-rUs Es la relación sobre los mismos dominios que contiene

las eneadas que están en r o s.

Intersección

r\s Es la relación con las eneadas que están en r y en s.

Diferencia

r-s Es la relación con las eneadas que están en r pero no en s.

Ejemplo: Sean r y s relaciones con esquema en {A,B,C}

r: s:

A B C A B C

a1 b1 c1 a1 b1 c1

a1 b2 c1 a2 b2 c1

a2 b1 c2 a2 b2 c2

rUs:

A B C

a1 b1 c1

a1 b2 c1

a2 b1 c2

a2 b2 c1

a2 b2 c2

r\s:

A B C

a1 b1 c1

r-s:

A B C

a1 b2 c1

a2 b1 c2

Producto Cartesiano

Obtiene todas las eneadas que se construyen concatenando cada eneada de r con otra de s. En este caso los dominios de r y s no tienen que ser los mismos. Sea la r anterior y sea q la relación tal que:

q:

D E F

d1 e1 f1

d2 e2 f1

d2 e2 f2

rXq:

A B C D E F

a1 b1 c1 d1 e1 f1

a1 b1 c1 d2 e2 f1

a1 b1 c1 d2 e2 f2

a1 b2 c1 d1 e1 f1

a1 b2 c1 d2 e2 f1

a1 b2 c1 d2 e2 f2

a2 b1 c2 d1 e1 f1

a2 b1 c2 d2 e2 f1

a2 b1 c2 d2 e2 f2

Operadores Relacionales

Permutación

Esta operación se aplica a una sola relación, consiste en cambiar el orden de las columnas. Se denota por Pi_{i j k} en donde se indican el orden en que estarán las columnas de la relación original. En este caso la primera columna es la i, la segunda la j y la tercera la k.

Ejemplo:

Permutar Pi_{2 3 1}(r):

B C A

b1 c1 a1

b2 c1 a1

b1 c2 a2

Pi_{2 1 4 3} Alumnos={Nombre-al},{NoCta},{carrera},{prom}

Proyección

Es también una operación unaria. El resultado es un subconjunto de dominios, permite obtener subrelaciones de otras más grandes seleccionando algunos atributos. Se eliminan,luego, las eneadas

repetidas. Se denota también con Pi y se indican las columnas seleccionadas :

Ejemplos:

Pi_{23}(r)=

B C

b1 c1

b2 c1

b1 c2

Pi_{12} {Alumnos}={No.Cta},{nombre-al}

Selección

Produce un subconjunto de las eneadas de la relación que cumplen con una condición (simple o compuesta) sobre los valores para uno o varios de los atributos. Se denota por sigma_{cond}(r).

Ejemplos:

sigma_{(B=b1)}(r)

a1 b1 c1

a2 b1 c2

sigma_{carrera}={física}(Alumnos)

C1 Suárez 8 física

C3 Aguirre 7 física

Unión o Reunión (JOIN)

Se denota por r*{cond}s a un subconjunto del producto cartesiano de dos relaciones r,s en que se cumple alguna condición en dominios comunes. Se obtiene concatenando una eneada de r con otra de s, de forma que cumpla con una condición en los dominios comunes. Si no hay dominios comunes, esta operación es un producto cartesiano.

Ejemplo:

r={A,B} s={A,D}

r*{(A=a1)}s={A,B,D}

a1 b1 a1 d1 a1 b1 d1

a2 b2 a1 d2 a1 b1 d2

a2 d1

También es posible efectuar una reunión en atributos que tengan diferentes nombres pero el mismo dominio. En este caso se llama equireunión [Maier]. Si la condición es sobre atributos con nombres distintos, mismo dominio pero la condición no es sobre igualdades, se le llama reunión donde indica que tipo de condición se tiene (<,>,etc.).

OPERACIONES PRIMITIVAS

En el álgebra relacional se han incluido las operaciones unión, intersección, diferencia, producto cartesiano, proyección, selección, permutación y reunión. No todas ellas son necesarias tenerlas, las operaciones primitivas indispensables a partir de las cuales se pueden obtener las demás son: unión, diferencia, producto cartesiano, proyección y selección.

Por ejemplo la intersección se puede expresar en términos de la diferencia como sigue:

r/s=(r-(r-s))

La reunión se puede obtener a partir de la selección de los elementos que cumplen con una condición en el producto cartesiano:

r*_{(cond)}s=sigma_{(cond)}(r times s)

Esto es importante pues algunos sistemas manejadores de bases de datos comerciales proporcionan solo parte de los operadores, es suficiente con que tengan las operaciones primitivas a partir de las cuales obtener las otras.

Otro punto importante del álgebra relacional es ver que propiedades tienen las operaciones para optimizar su uso.

la unión es conmutativa y asociativa:

(rUs)Ut =(sUt)Ur

la intersección también es conmutativa y asociativa:

(r Int s)Int t =(s Int t )Int r

existe distributividad entre la unión y la intersección:

r Int ( sUt)=(r Int s)U(r Int t)

también son conmutativos el producto cartesiano y la selección.

A partir de los operadores del álgebra relacional también se pueden efectuar las operaciones de actualización. Para insertar una eneada se puede hacer como la unión de una relación y dicha

eneada:

rU(a1,...,an)

Para borrar se hace la diferencia entre la relación y la eneada:

r-(a1,...,an)

Según [Date] un sistema manejador de bases de datos se puede llamar totalmente relacional si soporta:

Una base de datos relacional incluidos los conceptos de dominio, llave, y las dos reglas de integridad y el almacenamiento de las relaciones. Un lenguaje de manipulación de datos que sea al menos tan poderoso como el álgebra relacional.

BIBLIOGRAFÍA

[Date] Date C. J.Introducción a los sistemas de bases de datos.

Addison Wesley Iberoamericana. 1986.

[Maier] Maier David. The Theory of Relational Databases.

Computer Science Press. 1983.

[Rivero] Rivero Cornelio E. Bases de Datos Relacionales.

Parainfo 1988.

Conceptos basicos

Base de datos

Una base de datos o banco de datos (en inglés: database) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.

Campo

Campo: unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. La descripción de un campo, permite aclarar información referida a los nombres del campo. El tipo de campo, permite especificar el tipo de información que cargaremos en dicho campo.

Registro

Registro: es el conjunto de información referida a una misma persona u objeto. Un registro vendría a ser algo así como una ficha.

Tabla

Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. 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 la hora de manejar varios campos en la tabla, ya que cada nombre de campo debe ser distinto entre sí.

Data

El dato (del latín datum), es una representación simbólica (numérica, alfabética, algorítmica etc.), atributo o característica de una entidad. El dato no tiene valor semántico (sentido) en sí mismo, pero convenientemente tratado (procesado) se puede utilizar en la realización de cálculos o toma de decisiones. Es de empleo muy común en el ámbito informático.

En programación un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo.

Del lat. tardío [charta] data, propiamente 'documento dado', es decir, extendido, otorgado, palabra que en las escrituras latinas precede a la indicación del lugar y la fecha.

Nota o indicación del lugar y tiempo en que se hace o sucede algo y especialmente la que se pone al principio o al fin de una carta o de cualquier otro documento.

SGBD

Los sistemas de gestión de base de datos (SGBD); (en inglés: DataBase Management System, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.

Información

La información es un conjunto organizado de datos procesados, que constituyen un mensaje sobre un determinado ente o fenómeno. De esta manera, si por ejemplo organizamos datos sobre un país, tales como: número de habitantes, densidad de población, nombre del presidente, etc. y escribimos por ejemplo, el capítulo de un libro, podemos decir que ese capítulo constituye información sobre ese país. Cuando tenemos que resolver un determinado problema o tenemos que tomar una decisión, empleamos diversas fuentes de información (como podría ser el capítulo mencionado de este libro imaginario), y construimos lo que en general se denomina conocimiento o información organizada que permite la resolución de problemas o la toma de decisiones (ver apartado sobre conocimiento).

Modelo de base de datos

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.

Modelo jerárquico

Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de informació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 de datos.

Modelo relacional

El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicado y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (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 conjuntos de datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cada relación como si fuese una tabla que está compuestas por registros (cada fila de la tabla sería un registro o tupla), y columnas (también llamadas campos).

Modelo de red

Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: 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 de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Una estructura de base de datos de red, llamada algunas veces estructura de plex, abarca más que la estructura de árbol, porque un nodo hijo en la estructura red puede tener más de un nodo padre. En otras palabras, la restricción de que en un árbol jerárquico cada hijo puede tener sólo un padre, se hace menos severa.

Fuente: fismat, monografías, Wikipedia, real academia española