sábado, 7 de junio de 2014

Creacion de una base de datos.

CREACION DE UNA BASE DE DATOS




//COMENZAMOS DANDOLE UN NOMBRE A LA BASE DE DATOS //
mysql> CREATE DATABASE VENTAS;
// AHORA CREAREMOS CADA UNA DE LAS TABLAS //
mysql> CREATE TABLE PAIS (NUM_PAIS VARCHAR(3) NOT NULL, NOM_PAIS VARCHAR(50) NOT NULL, ZONA_PAIS TEXT NOT NULL, MONEDA_PAIS VARCHAR(10) NOT NULL, PRIMARY KEY(NUM_PAIS)) ENGINE=INNODB;

mysql> CREATE TABLE PRODUCTO (NUM_PRODUC VARCHAR(10) NOT NULL,  NOM_PRODUC VARCHAR(50) NOT NULL, PESO_PRDUCTO DECIMAL NOT NULL, PRECIO_PRODUCTO DECIMAL(12,2) NOT NULL, PRIMARY KEY(NUM_PRODUC),FOREIGN KEY (NUM_PAIS) REFERENCES PAIS (NUM_PAIS))ENGINE=INNODB;

//AHORA LLENAREMOS LAS TABLAS CON LA INFORMACION REQUERIDA //

mysql> INSERT INTO PAIS VALUES (100, “VENEZUELA”, “ESTA UBICADO EN LA PARTE SEPTENTRIONAL DE SUDAMERICA Y FORMA PARTE DE LA ZONA TROPICAL”, EL BOLIBAR), (101, URUGUAY, “ESTA SITUADO EN LA PARTE ORIENTAL DEL CONO SUR AMERICANO”, “PESO URUGUAYO”), (102, “PERU”, “ESTA UBICADO EN LA PARTE ACCIDENTAL DE AMERICA DEL SUR”, “EL NUEVO SOL”), (103, “NIGERIA”, “ESTA SITUADO EN AFRICA OCCIDENTAL EN LA ZONA DEL GOLFO DE GUINEA”, “NAIRA”), (104, “MEXICO”, “ESTA UBICADO EN LA PARTE MERIDIONAL DE AMERICA DEL NORTE”, “EL PESO”), (105, “COLOMBIA”, “ESTA SITUADO EN LA REGION NORCCIODENTAL DE AMERICA DEL SUR”, “PESO”);

mysql> INSERT INTO PRODUCTO VALUES (001, “MANZANA”, 200GR, 500), (002, “PERA”, 230GR, 600), (003, “CARNE”, 2LB, 12000), (004, “ARROZ”, 1LB, 1200),(005, “JUGO TROPICAL”, 1LT, 2000);


Tipos de datos

1 Tipos numéricos: 

Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que no. 

TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 

Bit ó Bool: un número entero que puede ser 0 ó 1 

SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535. 

MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215. 

Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 

BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615. 

Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. 

xReal, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 

Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena.


2 Tipos fecha: 

A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31. 
Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia.


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. 



3 Tipos de cadena: 

Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres. 

VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres. 

Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object) 

La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta. 

Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. 

TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres. 

Blob y Text: un texto con un máximo de 65535 caracteres. 

MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres. 

LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación los paquetes pueden tener un máximo de 16 Mb. 

Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos 

Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores. 
CREACION DE DB EN MYSQL
Antes de empezar voy a difinir que es MSQL: En si es  un SGBD de tipo relacional, es decir, es una apliacion que sirve para administrar una BD.
PAra poder crear una BD en este lenguaje de programacion dedemos seguir agunos pasos:
1. Tener instalado el MSQL, y sus respectivos Complementos.2. Luego de tenerlo instalado, debemos activar el Servidor(programa instalado en el paso 1).3. Se ingresa a MSQL(por consola).4.se ingresa el comando: Create database xxxxx (las "x" son el nombre de la tabla Ej, Create database Learning;)
5. Se procede a utilizarla con el comando, use segido del nombre de la tabla, Ej, useLearning. Ya usado el anterior comando, se procede a utilizar el comando show(nombre de la tabla), Ej, show Learning, para poder ver que tiene la tabla(por el momento nada).


6. para crear campos(y registros) se utiliza el codigo alter table, o el comando create
7. Luego de crar todo lo necesario podemos utlizarlos diferntes comandos para rellenar y modificar la BD:

SELECT para consultar
INSERT insertar datos
UPDATE modficar datos
DELETE eliminar registros

Tipos de Datos
Tipos de cadena

Char(n): almacena una cadena de longitud de 0 a 255(invariable).
VarChar(n): almacena una cadena de longitud variable(0 a 255).

Tipos Numéricos

TinyInt: es un número entero con o sin signo. ( desde -128 a 127).
Bit ó Bool: un número entero que puede ser 0 ó 1.
SmallInt: número entero con o sin signo.( desde -32768 a 32767). Sin signo, desde 0 a 65535.
MediumInt: número entero con o sin signo. Con signo(desde -8.388.608 a 8.388.607). Sin signo ( desde 0 a 16777215).
Integer, Int: número entero con o sin signo. Con signo ( desde -2147483648 a 2147483647). Sin signo (desde 0 a 4.294.967.295)
BigInt: número entero con o sin signo. Con signo(desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807). Sin signo ( desde 0 a 18.446.744.073.709.551.615). 
Float: número pequeño en coma flotante de 32bits de precisión.( desde
-3.402823466E+38 a -1.175494351E-38,0 ).
xReal, Double: número en coma flotante de 64 bits de precisión. ( desde:-1.7976931348623157E+308 a -2.2250738585072014E-308).





miércoles, 4 de junio de 2014

Conceptos de modelos de bases de datos relacionales

MODELO ENTIDAD RELACIÓN

 Se usa para diseñar la BD.



 Conceptos base son:
– entidades (y atributos y elementos)
– relaciones

CONCEPTOS.
Atributos (también llamadas columnas)

Estas entidades están compuestas por varios atributos, que vienen a ser sus propiedades.Por ejemplo, la entidad alumnos, tendrá los atributos nombre, DNI, nacionalidad, fecha de nacimiento, ...

Elementos (también llamadas filas)


Cada entidad tendrá un número ilimitado de elementos.

RELACIONES:

Las entidades no están aisladas sino que están relacionadas entre sí.
Existen 3 tipos de relaciones diferentes

1 a 1 . de uno a uno
1 a N de uno a muchos
N a M y de muchos a muchos

En la siguiente imagen podemos observar los diferentes tipos de relación.

                                 

NORMALIZACIÓN

Todos los atributos que no forman parte de la clave primaria deben de ser independiente.


martes, 3 de junio de 2014

Modelos de BD, Tipos De Relacion Y Normalizacion De Base De Datos




EL MODELO RELACIONAL


El modelo de datos basado en la teoría de las relaciones, en donde los datos se estructuran lógicamente en forma de relaciones –tablas-, siendo un objetivo fundamental del modelo mantener la independencia de esta estructura lógica respecto al modo de almacenamiento y a otras características de tipo físico.


Representación del modelo

• Representaremos las relaciones así:


– Relación 1:1

Se relacionan sencillamente de uno a uno. 





– Relación 1:N

En este caso Producto llevara la llave Foránea de País Por que Tiene el Intervalo de Muchos(N) o como pueden ver el Símbolo de Infinito.




– Relación M:N

Es cuando un registro de una tabla puede estar relacionado con más de un  registro de la otra tabla o viceversa.




Qué es la normalización

La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de
estructuras de datos más pequeñas, que además de ser más simples y más estables, son más
fáciles de mantener. También se puede entender la normalización como una serie de reglas que sirven
para ayudar a los diseñadores de bases de datos a desarrollar un esquema que minimice los
problemas de lógica. Cada regla está basada en la que le antecede.

Primera Forma Normal

La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y
colocarse en tablas separadas.

Segunda Forma Normal

La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben
eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a
aquellos datos que no dependen de la llave primaria de la tabla para identificarlos.


Tercera Forma Normal

Una tabla está normalizada en esta forma si todas las columnas que no son llave son funcionalmente
dependientes por completo de la llave primaria y no hay dependencias transitivas. Comentamos
anteriormente que una dependencia transitiva es aquella en la cual existen columnas que no son llave
que dependen de otras columnas que tampoco son llave.





Yiced Sanchez Guzman

MODELO RELACIONAL, TIPOS DE RELACION Y NORMALIZACION DE BASE DE DATOS

MODELO RELACIONAL

Es un modelo de datos basado en el sistema formal que esta diseñado para estudiar la inferencia en los lenguajes del primer orden (Lógica de Predicados), y en la rama de las matemáticas que estudia las propiedades de los conjuntos. Es el más utilizado en la actualidad para modelar problemas reales y administrar datos dinámica mente.


En este modelo se crea las tablas con sus respectivos campos

En este modelo ya se relacionan las llaves primarias y las foráneas cuando es de uno a varios y por defecto se crea otra tabla que es cuando la relación es de muchos a muchos. 


TIPOS DE RELACIONES 

RELACIÓN DE UNO A UNO (1:1) Es cuando un registro de una tabla sólo puede estar relacionado con un único de la otra tabla o viceversa. Es decir se heredan entre sí cada uno coge la llave principal del otro.






RELACIÓN DE UNO A VARIOS (1:N) Es cuando un registro de una tabla (Tabla Secundaria) sólo puede estar relacionado con un único registro de la otra tabla (Tabla Principal) y un registro de la otra tabla (Tabla Principal) puede tener más de un registro relacionado en la primera tabla (Tabla Secundaria). Es decir cuando la tabla que tiene la N se trae la llave principal de la tabla que tiene 1 y pase hacer llave foránea de la tabla.



RELACIÓN DE VARIOS A VARIOS (N:N) Es cuando un registro de una tabla puede estar relacionado con más de un  registro de la otra tabla o viceversa. Es decir cuando por defecto se crea otra tabla donde va el nombre que le colocas a ella, las llaves principales de las dos o más tablas que serán llaves foráneas de dicha tabla y se adiciona un ID que hará como llave principal en la tabla. 





BASE DE DATOS RELACIONAL

Es un conjunto de una o más tablas estructuradas en registros (lineas) y campos (columnas) que se relacionan entre si por un campo en común.

Las bases de datos relacionales pasan por un proceso al que se le conoce como NORMALIZACIÓN DE UNA BASE DE DATOS, en el cual es el proceso para que una base de datos sea utilizada de manera óptima.



















domingo, 1 de junio de 2014

modelos ,tipos y normalizacion

Base de datos relacionales 


Es un conjunto de información relacionada entre si , referente a un tema o algún propósito en particular y es la mas utilizada en la actualidad 


Tipos de relaciones

Relaciones “Unos a Varios"
este tipo de relacion es el mas comun, en esta relación un registro de la tabla A puede tener más de un registro coincidente en la tabla B,pero un registro de la tabla B tiene como máximo un registro coincidente en la tabla A 
→ ejemplo de la vida cotidiana 
a= madre
b= hijos 
una madre puede tener muchos hijos , pero los hijos solamente pueden tener una sola madre 





Relaciones “Varios a Varios”
Un registro de la tabla A puede tener un registro coincidente en la tabla B y viceversa, para detectar esta relación obsérvela en dos sentidos, por ejemplo: examine la relación pedidos y productos. Un pedido puede incluir más de un producto y un producto puede aparecer en varios pedidos, para resolver este problema la regla a seguir es crear una tercera tabla que rompa esta relación que incluiría la clave principal de cada una de las dos tablas anteriores como clave principal en esta tabla que garantiza un valor único para cada registro.  






Relación “Uno a Uno”

Un registro de la tabla A no puede tener más de un registro coincidente en la tabla B y viceversa. Este tipo de relación es poco frecuente y ocurre al aplicar técnicas de desnormalización, cuando una tabla es muy grande y se divide en dos, o cuando la información de algunos campos tiene un tiempo de vida útil limitado o cuando esa misma información solo la utilizan un grupo limitado de registros.


Normalizacion 

La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes.

Primera forma normal
  • Elimine los grupos repetidos de las tablas individuales.
  • Cree una tabla independiente para cada conjunto de datos relacionados.
  • Identifique cada conjunto de datos relacionados con una clave principal.
No use varios campos en una sola tabla para almacenar datos similares. Por ejemplo, para realizar el seguimiento de un elemento del inventario que proviene de dos orígenes posibles, un registro del inventario puede contener campos para el Código de proveedor 1 y para el Código de proveedor 2



Segunda forma normal
  • Cree tablas independientes para conjuntos de valores que se apliquen a varios registros.
  • Relacione estas tablas con una clave externa.
Los registros no deben depender de nada que no sea una clave principal de una tabla, una clave compuesta si es necesario. Por ejemplo, considere la dirección de un cliente en un sistema de contabilidad. La dirección se necesita en la tabla Clientes, pero también en las tablas Pedidos, Envíos, Facturas, Cuentas por cobrar y Colecciones. En lugar de almacenar la dirección de un cliente como una entrada independiente en cada una de estas tablas, almacénela en un lugar, ya sea en la tabla Clientes o en una tabla Direcciones independiente.

Tercera forma normal
  • Elimine los campos que no dependan de la clave.
Los valores de un registro que no sean parte de la clave de ese registro no pertenecen a la tabla. En general, siempre que el contenido de un grupo de campos pueda aplicarse a más de un único registro de la tabla, considere colocar estos campos en una tabla independiente. Por ejemplo, en una tabla Contratación de empleados, puede incluirse el nombre de la universidad y la dirección de un candidato. Pero necesita una lista completa de universidades para enviar mensajes de correo electrónico en grupo. Si la información de las universidades se almacena en la tabla Candidatos, no hay forma de enumerar las universidades que no tengan candidatos en ese momento. Cree una tabla Universidades independiente y vincúlela a la tabla Candidatos con el código de universidad como clave.


Normalizar una tabla de ejemplo
Estos pasos demuestran el proceso de normalización de una tabla de alumnos improvisada  
  1. Tabla sin normalizar:
Nº alumno
Tutor
Despacho-Tut
Clase1
Clase2
Clase3
1022
García
412
101-07
143-01
159-02
4123
Díaz
216
201-01
211-02
214-01
  1. Primera forma normal: no hay grupos repetidos

    Las tablas sólo deben tener dos dimensiones. Puesto que un alumno tiene varias clases, estas clases deben aparecer en una tabla independiente. Los campos Clase1, Clase2 y Clase3 de los registros anteriores son indicativos de un problema de diseño. 

    Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deberían hacerlo. Otra forma de considerar ese problema es con una relación de uno a varios y poner el lado de uno y el lado de varios en tablas distintas. En su lugar, cree otra tabla en la primera forma normal eliminando el grupo repetido (Nº clase), según se muestra a continuación:

Nº alumno
Tutor
Despacho-Tut
Nº clase
1022
García
412
101-07
1022
García
412
143-01
1022
García
412
159-02
4123
Díaz
216
201-01
4123
Díaz
216
211-02
4123
Díaz
216
214-01
  1. Segunda forma normal: eliminar los datos redundantes

    Observe los diversos valores de Nº clase para cada valor de Nº alumno en la tabla anterior. Nº clase no depende funcionalmente de Nº alumno (la clave principal), de modo que la relación no cumple la segunda forma normal.

    Las dos tablas siguientes demuestran la segunda forma normal:

    Alumnos:
Nº alumno
Tutor
Despacho-Tut
1022
García
412
4123
Díaz
216


  1. Registro:
Nº alumno
Nº clase
1022
101-07
1022
143-01
1022
159-02
4123
201-01
4123
211-02
4123
214-01
  1. Tercera forma normal: eliminar los datos no dependientes de la clave

    En el último ejemplo, Despacho-Tut (el número de despacho del tutor) es funcionalmente dependiente del atributo Tutor. La solución es pasar ese atributo de la tabla Alumnos a la tabla Personal, según se muestra a continuación:

    Alumnos:
Nº alumno
Tutor
1022
García
4123
Díaz


  1. Personal:
Nombre
Habitación
Dept
García
412
42
Díaz
216
42









Modelos y normalizacion

BD relacionales








El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámica mente, El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico matemático que,además de proporcionarnos los elementos básicos de modelado (las relaciones), incluye un conjunto de operadores (definidos en forma de un álgebra relacional) para su manipulación, sin ambigüedad posible. 

En el modelo relacional se basa en el concepto matemático de relación. En este modelo, la información se representa en forma de “tablas” o relaciones, donde cada fila de la tabla se interpreta como una relación ordenada de valores (un conjunto de valores relacionados entre sí). El siguiente ejemplo presenta una relación que representa al conjunto de los departamentos de una determinada empresa, y que recoge información sobre los mismos.





tipos de relaciones


Existen relaciones de diferentes tipos. El tipo de relación que utiliza Access al unir
dos tablas dependerá de cómo estén definidos los campos relacionados.



  • Relación de uno a varios (1,n). Se crea una relación de uno a varios si uno de los campos relacionados es una clave principal. Esta relación es la más común. Cada registro de una tabla puede estar enlazado con varios registros de una segunda tabla, pero cada registro de la segunda sólo puede estar enlazado con un único registro de la primera.




  • Relación de uno a uno (1,1). Se creará una relación de este tipo si ambos campos relacionados son claves principales. En este tipo de relación, un registro de la tabla uno sólo puede estar relacionado con un único registro de la tabla dos y viceversa. No es muy usada.






  • Relación de varios a varios (n,m). En este caso, ninguno de los campos relacionados son claves principales. Cada registro de la primera tabla puede estar enlazado con varios registros de la segunda y viceversa. Este tipo de relación implica la repetición de los campos de cada tabla; esto es lo que Access pretende evitar. Para establecer relaciones de este tipo, es necesario crear una tabla intermedia que esté relacionada con las dos de uno a varios.







normalizacion:

El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.







1FN: elimina  columnas repetidas y se colocan en tablas separadas.





2FN establece que toda columna que no sea llave  sera dependiente se la llave primaria







3FN la tercera forma normal establece que se debe eliminar la dependencia transitiva.