Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Integridad
INSERT INTO libro VALUES
(12,”Biologia”,”John”,”Kimball”,”W.”,
“AAA”,”Libro de ciencias naturales”)
Cuando una tabla va a ser creada, es necesario considerar todos los restricciones
relacionados con cada una de las columnas involucradas, estas restricciones son llamadas
constraints.
El concepto integridad va muy ligado con el termino constraint, ya que a través de todas la
restricciones definidas en cada columna, se esta asegurando que la información que será
insertada, actualizada o eliminada debe ser coherente.
Nombres de atributos
Nombrar los atributos de una entidad es un proceso en el cual se deben involucrar todas las
personas que van a trabajar con la base de datos.
Para lograr mejores acuerdos se deben establecer reuniones de negociación para dar las
normas y/o criterios de los nombres a elegir; así mismo se deben validar las siguientes
cuestiones:
•Utilizar nombre únicos para cada atributo, y con un significado real de lo que están
representando. Esto también representa el echo de poner abreviaturas, guiones bajos, etc.
Ejemplo: no_empleado .VS. num_empledo .VS. numero_empledo
•Evitar sinónimos y antónimos, esto con la finalidad de no confundir conceptos entre las
diversas entidades. Cabe señalar que los únicos atributos que deben de llevar el mismo
nombre son aquellos que son PK y FK.
Valores nulos
Un valor nulo es un valor totalmente desconocido. Es un valor que jamás fue dado por el
usuario.
Cuando un atributo no permite valores NULOS, se debe indicar con la palabra NOT NULL.
Valores únicos
Ø Jamás se repiten
Un atributo con la característica de único indica que cada uno de los valores a insertar o
modificar dentro de él deben ser distintos.
La diferencia de un atributo ÚNICO con respecto a las PK, es que las PK permiten manejar
relaciones con una correspondiente FK en otra entidad, mientras que los atributos ÚNICOS
solo se manejan con la característica de ser distintos los valores y jamás repetirse, así mimo
no permiten generar relaciones con otras entidades.
Así mismo se puede indicar que dos o más atributos pueden tener un valor único como
resultado de la suma de ellos, Ejemplo: Apellido Paterno y Apellido Materno dentro de una
entidad deben ser únicos, sin embargo, Apellido Paterno puede repetirse por sí solo, así como
Apellido Materno también se pudiera repetir.
tienda cliente
UNN Codigo tienda
UNN Num cliente
NN Nombre tienda
Nombre
Calle
NN Apellidos
Ciudad
Calle
Estado
Ciudad
Cp
Estado
Gerente
Cp
cambio de precio Teléfono
NN Tipo de TDC
NN Codigo tipo video NN Número de TDC
U { NN Fecha de cambio NN Fecha expiración TDC
NN Precio anterior
Tipos de datos
Cuando los datos deben ser definidos, también es bueno basarse en documentos fuentes
existentes, ya que con ello puede quedar más claro que tipo de dato debe ir en cada atributo.
Con respecto a las PK y FK el tipo de dato debe ser el mismo, esto es, si la PK fue definida
como un numero entero, la FK debe ser definida exactamente igual, como un número enter.
Carácter
Binarios
Numéricos: entero
Veamos un ejemplo para comprender mejor qué tipo de dato nos conviene elegir para cada campo.
Si necesitamos definir un campo para almacenar la "edad" de nuestros usuarios, sería suficiente con
asignar a ese campo un tipo de dato TINYINT, que permite almacenar como máximo el valor de 127 (es
decir, por mas que tenga tres dígitos, no nos dejará almacenar un 999, ni siquiera un 128, solo un
número hasta el número 127 inclusive).
Como la edad posible de las personas queda incluida en ese rango, es suficiente un TINYINT.
Ahora bien, si queremos definir el tipo de dato para el campo id(identificador) de la tabla de productos
de un gran mercado que vende varios miles de artículos diferentes, ya no séra suficiente con un
TINYINT, y deberemos conocer con mayor precisión la cantidad de artículos distintos que comercializa
(en la actualidad y la cantidad prevista en un futuro próximo, para que nuestro sistema de
almacenamiento no quede obsoleto rápidamente).
Suponiendo que SMALLINT, ya que nos permitirá numerar hasta algo más de 32,000 artículos (tal
como vimos en el cuadro anterior).
En el supuesto de que el campo id deba utilizarse para una tabla de clientes de una empresa telefónica
con 5 millones de usuarios, ya no nos servirá un SMALLINT, sino que deberíamos utilizar
un MEDIUMINT.
En el caso de que esa empresa tuviera 200 millones de clientes, deberíamos utilizar un campo de
tipo INT.
Asimismo, si quisiéramos definir un campo que identifique a cada uno de los seres humanos que
habitamos en el planeta, deberemos recurrir a un campo BIGINT, ya que el tipo INT sólo permite
hasta 2 mil millones de datos diferentes, lo cual no nos alcanzaría.
Numéricos: decimal
La estructura con la que podemos declarar un campo FLOAT implica definir dos valores:
la longitud total (incluyendo los decimales y la coma), y cuántos de estos dígitos son la parte
decimal. Por ejemplo: FLOAT (6.2)
Esta definición permitirá almacenar como mínimo el valor -999.99 y como máximo 999.99 (el signo
menos no cuenta, pero el punto decimal sí, por eso son seis dígitos en total, y de ellos dos son los
decimales).
La cantidad de decimales (el segundo número entre los paréntesis) debe estar entre 0 y 24, ya que
ése es el rango de precisión simple.
En cambio, en el tipo de dato DOUBLE, al ser de doble precisión, sólo permite que la cantidad de
decimales se defina entre 25 y 53.
Debido a que los cálculos entre campos en MySQL se realizan con doble precisión (la utilizada por
DOUBLE) usar FLOAT, que es de simple precisión, puede traer problemas de redondeo y pérdida
de los decimales restantes.
Por último, DECIMAL es ideal para almacenar valores monetarios, donde se requiera menor
longitud, pero la "máxima exactitud" (sin redondeos).
Este tipo de dato le asigna un ancho fijo a la cifra que almacenará.
El máximo de dígitos totales para este tipo de dato es de 64, de los cuales 30 es el número de
decimales máximo permitido. Más que suficientes para almacenar precios, salarios y monedas.
Los valores para columnas DECIMAL no se representan como cadenas que requieren un byte por
dígito o carácter de signo. En su lugar, se usa un formato binario que empaqueta nueve dítigos
decimales en cuatro bytes. Este cambio del formato de almacenamiento de DECIMAL cambia los
requerimientos de almacenamiento también. El almacenamiento para las partes enteras y
fraccionales de cada valor se determinan por separado. Cada múltiple de nueve dígitos necesita
cuatro bytes, y los dígitos restantes necesitan una fracción de cuatro bytes. Por ejemplo, una
columna DECIMAL(18,9) tiene nueve dígitos en cada parte del punto decimal, así que la parte
entera y fraccional necesitan cuatro bytes cada una. Una columna DECIMAL(20,10) tiene 10
dígitos en cada lado del punto decimal. Cada parte requiere cuatro bytes para nueve de los dígitos,
y un byte para el dígito restante.
Fecha
Fecha
tipo de video
Codigo tipo video Char(2) empleado
Descripcion tipo video Char(20)
Precio de renta decimal(4,2)
Num empleado Integer
Nombre Char(20)
video Apellidos Char(30)
Numero de Seguro Soc Char(11)
renta maestro Calle Char(80)
Num. Inventario integer Num. Renta integer Ciudad Char(20)
Distribuidor Smallint Num. Cliente Integer Estado Char(2)
Título Char(60) Numero empleado Integer Cp Char(10)
Fecha de recibido Date Fecha renta date Teléfono Char(12)
Codigo Distribuidor Char(3) Fecha Contratación date
Codigo Tipo Video Char(2) Tienda Char(3)
Codigo tienda Char(3)
renta detalle
Num renta Integer
Num inventario integer
Precio renta decimal(4,2)
distribuidor
EJERCICIO
INSTRUCCIONES:
Deberás entregar las respuestas en un documento PDF, con cada uno de los puntos que se te
piden, al final de cada página debe aparecer tu nombre y la fecha con la cual lo estás
entregando.