Modelo físico

Etapas mínimas del diseño de un BDR:
Modelo conceptual (diagrama principal, entidades principales vínculos).
Modelado lógico (diagrama relaciones y asociaciones (relación))
Modelado físico (diagrama tablas/relaciones y asociaciones)
+Tipo de dato (estándar/rdbms).
+Llaves foráneas (integridad referencial)
+Tablas derivadas (transitivas, históricos, catálogos, auditoria, (vistas)).

Tipo Dato:  SQL 92.
Datos primitivos:
Numéricos
           o NUMERIC
Caracteres
           o CHAR
           o VARCHAR
           o TEXT
Tiempos
           o DATE
           o TIME
Especiales
           o BIT (DOS OPCIONES)
           o BLOB (IMÁGENES, MULTIMEDIA)
           o ….

Númericos

NUMERIC(3,2)   -9.99 al 9.99 (En otros manejadores son float, double, decimal…) *3 longitud, los cuales 2 van a ser decimales.

NUMERIC(3,0)   -999 al 999 (En otros manejadores son: int, integer, smallint, bigint, tinyint…) *3 enteros

 NUMERIC(3)  (NO USAR YA QUE ES MUY ABIERTA Y VALIDARLO ES SER DIFICIL).
.333, 333, 3.33, 33.3 *Puedes ser cualquier numero de longitud 3.

Caracteres (A-Z, 0-9, CARACT. ESPECIALES)

CHAR & VARCHAR

CHAR(10) ‘Ana         ‘ (ocupa toda la longitud) (ocupa 1 byte = 10 byte)
VARCHAR(10) ‘Ana’ (ocupa solo la longitud que se ingresa)(ocupa 1byte + 2 byte, en este caso 3+2 = 5 byte)
Código CHAR(5)
‘02520’
Byte=5
Código VARCHAR(5)
‘02520’

Byte=7

*varchar no importa si le ponemos 250 o menos ya que se adapta. Siempre y cuando la longitud que ingreso sea menor a lo establecido.

CHAR se usa cuando siempre sé la long que va a tomar, siempre sea la misma para todos los registros.
Código postal
RFC
CURP
Número de cuenta
Numero de bolera.

Carácter vs Número: se decide si voy a realizar operaciones con él.
Teléfono: 55514214 carácter.
Número cel. CDMX CHAR.
Teléfono contacto: VARCHAR (ya que no se sabe la longitud fija, debido a la lada y si es celular o local, etc.).
“La long máx CHAR/VARCHAR 255”

Ahora TEXT:
longitud>255 (estándar TEXT= similar VARCHAR)
No funcionan con funciones de agregado 92 (DATA-LENGHT, SUBSTRING, TRIM).
*Se utiliza cunado no se va a realizar búsquedas.

Tiempos
DATE para Fechas completas. 2000/12/12 (año/mes/día)
TIME para hora
11:47:25:000 (hora: minuto: segundo: micro segundo)
11:47:25:00 (en ocasiones los microsegundos son 2 o 3 dígitos).
DATETIME (fecha con su tiempo) * no utilizar aún.
2000/12/12 11:45:00:00

Llave primaria (longitud corta y que sea un numero por lo que debe ser NUMERIC).
Una llave foránea de una tabla transitiva debe tener la misma longitud que las llaves primarias.


IMPLEMENTACIÓN DE FK

EN RELACIÓN 1:1
*Ira en la tabla que describe la llave principal de la otra tabla.

EN LA RELACIÓN 1:M
*La llave principal de la tabla 1 va pasar como FK a la tabla de M.

EN LA RELACIÓN M:M
*SE ROMPE LA RELACIÓN Y SE CREA UNA TABLA TRANSITIVA como ambas id, 
                                       tarjetaxusuario
                               idTarjeta FK, PK = PF
                               idUsuario FK,PK = PF

Integridad referencial Este tipo de integridad es el que nos permite lograr que los datos al estar relacionados, guarden ciertas restricciones, las cuales son

ON DELETE CASCADE: Si se elimina la tabla con PK se elimina todo con FK.
*Este tipo de restricción nos dice que si al padre se le borra, los datos hijos relacionados también se borrarán

ON DELETE RESTRICT: Si se elimina la tabla con PK no se elimina todo con FK.
*Si existe un padre, este no se podrá borrar hasta no borrar los datos hijos relacionados

ON UPDATE CASCADE: Si se actualiza la tabla con PK se actualiza todo con FK.
*Muchas veces se querrá modificar información en un tabla, es decir actualizar; en este caso si el padre tiene datos hijos relacionados, se podrá hacer la actualización sin ningún problema.

ON UPDATE RESTRICT: Si se actualiza la tabla con PK no se actualiza todo con FK
*Si el padre tiene datos hijos relacionados, no se podrán hacer las actualizaciones hasta liberar a sus datos hijos relacionados.

Comentarios