Hola bueno y lo que vamos a hacer ahora es algo nuevo a pedido de ustedes.
He hecho una encuesta con los usuarios y me han pedido ejercicios y modelado de base de datos en base
a datos reales.
Por ejemplo a lo que tienen que ver con sistemas que vamos a hacer que nos van a pedir seguramente para
desarrollar y vamos a tomar determinados módulos que ya son conocidos para ser todo un modelado de base
de datos por ejemplo vamos a comenzar en esta sección con lo que tiene que ver con un un sistema de
control de horarios de personal.
Vamos a tener que crear unas 15 o 16 tablas.
Van a ver que luego de estos capítulos que vamos a ver a continuación lo tuve que dividir en capítulos
porque es muy extenso en un solo capítulo quizás hubiera durado más de una hora y no es cuestión de
aburrirlos con tanto tanta duración en un solo capítulo.
Así que lo que vamos a hacer es lo que vamos a ver ahora ustedes por pantalla
esto que están viendo por pantalla es lo que vamos a desarrollar ahora hay tablas que tienen que ver
con los empleados hay tablas que tienen que ver con control de horario hay tablas que tienen que ver
con novedades que atañen a los que los empleados como por ejemplo excepciones en los horarios como por
ejemplo las tablas de localidad país y demás y van a ver que hay categorías secciones.
No vamos a hacer una mezcla de lo que son las tablas necesarias para un módulo de recursos humanos con
todo lo que tiene que ver con control de horario lo que vamos a ver en este capítulo ya tenemos abierto
nuestro Workbench y vamos a crear nuestra base de datos que va a ser la que vamos a usar a lo largo
de todo esta sección y no vamos a crear un nuevo modelo.
Vamos a aprender cosas muy buenas muy nuevas que tienen que ver con el tema del cómo maneja Workbench
las uniones de tabla y la forma en que lo vamos a hacer de una manera diferente a como lo hemos hecho
en el capítulo anterior.
Lo que vamos a hacer ahora es ira fail new model vamos a crear un nuevo modelo vamos a crear una base
de datos la vamos a llamar por ejemplo control de horario
muy bien a ser una base de datos que vamos a usar con las tablas que tienen que ver con control de horario
exclusivamente.
Vamos a adicionar un diagrama de esto se trata de armar la base de datos primero en el diagrama de entidad
relación vamos a hacer doble click y en nuestro nuevo diagrama vamos a comenzar en este primer capítulo
con la base que tiene que ver con la tabla de empleados.
Vamos a agregar la tabla empleados aquí hacemos doble click vamos a poner
empleados muy bien y tenemos nuestra tabla que va a ser la tabla central digamos principal porque todo
lo que tiene que ver con recursos humanos se basa en una tabla empleados.
Vamos a ir creando nuestros campos y voy a ir explicando qué es cada campo y por qué elegí este campo
porque el tipo de dato y demás ya que vamos a hacer un ejemplo real hay que explicar bien por qué se
decide cada cosa.
El primero obviamente es nuestra prima ariki vamos a usar el prefijo y obviamente aided para nuestros
empleados.
Voy a dejarlo de tipo entero voy a dejarlo como NOT NULL va a ser mi prima ariki ahí esta va a ser un
not Nul y va a ser por ejemplo signed no va a tener signo porque no va a haber una ibid. en negativo
siempre va a ser positivo y por supuesto vamos a tildar el auto incremento a medida que vamos creando
empleados se va a ir asignando un número de legajo a cada uno de ellos.
Vamos ahora a abrir esto un poquito más.
Luego lo achicamos para ver el diagrama otra cosa que vamos a hacer esto lo voy a poner así así ya vamos
viendo los campos muy bien o el segundo campo va a ser el apellido
este va a ser un Vercher de 60
ustedes pueden de acuerdo al sistema que tengan que desarrollar o las bases que tengan que crear pueden
elegir tener en un solo campo el nombre y apellido y no otro modelo muy usado es tener el apellido por
un lado y los nombres del empleado por el otro.
Este va a ser simplemente un parchar de 60.
Vamos a crear ahora los nombres.
O le pongo nombre.
No importa ahí puede haber varios nombres.
Lo vamos a hacer decían porque puede haber varios nombres.
Vamos a agrandar un poquito esto y vamos a agrandar un poco.
Muy bien luego vamos a completar el resto de los de las columnas y hay que tildar alguna o no. Ahora
vamos a seguir enumerando todos los campos.
Ahora viene la fecha de nacimiento.
Ustedes saben que no se graba la edad no se graba la edad se graba siempre la fecha de nacimiento.
Por qué.
Porque se calcula luego con la fecha actual en lugar de daytime me gustaría grabarlo del tipo Daito
así solamente tiene una fecha y no me ocupa con hora porque no me interesa la hora que nació la persona.
Luego tenemos fecha de alta la fecha que se dio de alta en nuestro sistema o sea la fecha de ingreso
a nuestra compañía del empleado y vamos a decirle que tipo de Haidt vamos a la fecha de baja porque
los empleados no se van a borrar los registros una vez que un empleado no trabaja más en la compañía.
El registro se tiene que mantener.
Por qué.
Porque va a haber muchas novedades asociadas a ese registro controles de horario otras cosas que tienen
que ver con las ventas.
Puede estar atado a muchas tablas entonces los registros no se dan de baja simplemente le vamos a poner
un estado mal vamos a ver y luego una fecha de baja vamos a elegir y continuamos el siguiente campo.
Es precisamente el Estado que va a estar atado a una tabla auxiliar de Estados.
No voy a grabar aquí un nombre es una mala práctica ya hemos visto todo lo que tiene que ver con normalizacion
y aquí vamos a unir luego vamos a crear la tabla la tabla estados para unir el estado de ese empleado
a esa tabla auxiliar ahora le vamos a decir que es un Tinet porque porque no voy a ser un entero que
tiene millones de posibilidades porque los estados van a ser muy poquitos vamos a colocar un Tinet de
dos dígitos a lo sumo habrá 100 estados.
Yo creo que no va a haber más de 10 más de cinco pero bueno lo dejamos preparado el sistema todo lo
que es datos numéricos le voy a decir que es aun Singler porque no voy a tener un número negativo.
Y ahora lo que voy a crear es la localidad y ahora les voy a explicar un poco porque esto ahora imagínense
que yo voy a querer vamos a primero el primero completo.
Y les explico muy bien y ahora esto va a ser an Cinder perfecto muy bien hago un pequeño paréntesis
con este campo nosotros vamos a tener tres tablas en el sistema una llamada países donde va a haber
un registro por cada uno de los países son 181 países en el mundo.
Podemos colocar los 181 países o solamente los que nos interesan.
Va a haber una tabla llamada provincias es cómo está dividido ese país en algunos países se llaman provincias
y en otros se llaman estados.
Sería lo mismo ser el equivalente de provincia es Estados y el otro la tercera tabla es la tabla localidad
muy bien.
La localidad va a estar atada a un Estado.
El Estado va a estar atado a un país.
Entonces no tiene sentido que yo coloque en la tabla de empleados de qué país es el empleado de qué
de qué provincia es.
Y por ultimo de qué localidad estaría grabando por cada registro tres campos cuando con uno solo.
Yo voy a poder obtener esos tres datos cuando nosotros veamos en el próximo capítulo o en algún capítulo
posterior que creamos las tablas de país provincia y localidad se van a dar cuenta que como con solo
tener la localidad en el empleado voy a poder obtener uniendo todas esas tablas.
A la información de qué provincia o Estado y la información de qué país a qué país corresponde es empleado
entonces esto es normalizacion avanzada.
Lo hemos visto para no repetir información y hacerlo lo más liviana posible la tabla así que esta localidad
va a ser una Foreing aquí una clave foránea hacia la tabla localidad y lo vamos a ver después.
Vamos a seguir con los campos.
Ahora viene por ejemplo una categoría un una de categoría.
Esta tabla les va a servir para un sistema que tenga que ver con recursos humanos también no solamente
con control de horario porque la tabla de empleados es afín a ese tipo de sistemas sistemas de liquidación
de sueldos recursos humanos y demás.
Bueno la categoría es un molino Molinet y le vamos a poner cuatro dígitos Yo ahora les voy a explicar
categoría porque porque hay distintos tipos de empleos.
Por ejemplo una categoría podría ser gerente la otra podría ser analista funcional.
La otra podría ser empleado administrativo tipo A. empleado administrativo o tipo de maestranza director
de la compañía son todas las categorías que yo voy a tener de la del organigrama de mi empresa.
Entonces a cada empleado le voy a poner una categoría para saber si él es un empleado administrativo.
Todo lo que acabo de explicar va a haber obviamente una tabla categorías que va a tener todos los Heydi
con los nombres correspondientes.
No voy a grabar un nombre aquí no voy a decir aquí empleados administrativo se entiende muy bien.
Vamos ahora a sector y esto es lo mismo.
Cuál es la diferencia de categoría del sector.
Es muy claro el sector es un sector de mi compañía yo quiero saber si esa persona pertenece a administración
si pertenece al departamento de sistemas si pertenece a las gerencias y pertenece a una sucursal determinada
de mi cadena de sucursales y ahí yo voy a tener una tabla de referencia también llamada sectores que
voy a unir a la tabla empleados muy bien luego viene salario y ahora voy a explicar por qué coloco aquí
salario.
No la vamos a usar en control de personal.
Simplemente no quiero que tengan una tabla de empleados muy incompleta quiero que la tengan lo más completa
posible por supuesto va a haber más campos que agregar dependiendo de la temática en la que estén trabajando.
El rubro en el que estén trabajando el sistema la empresa todos nos hace siempre tomar algo estándar
y empezar a moldearlo y agregarle Campos quitarle Campos.
Hay empresas que trabajan con control de personal.
Hay empresas que no trabajan con control de personal hay empresas que tienen liquidación de sueldos.
Hay empresas que mandan a tercerizar.
El tema de la liquidación de sueldos abona a un estudio de recursos humanos un estudio contable bueno
esto lo van a ir moldeando ustedes de acuerdo a los requerimientos que tengan en el trabajo que tengan.
Por qué coloco salario.
Todo lo que tiene que ver con sueldos va a estar en tablas aparte que no las he incluido porque estamos
viendo control de personal y que podemos en un sistema normal decir que dependiendo el sector y la categoría
asignar un sueldo estándar decir por ejemplo todo lo que es sistemas y que la categoría es analista
funcional van a cobrar de analista funcional senior por ejemplo van a cobrar tanto salario fijo por
mes.
Y eso es lo que hacen muchas empresas donde ya dependiendo el puesto tienen un salario fijo.
Ahora si eso es así me va a quitar la libertad de negociar con un empleado en particular porque quiero
retenerlo porque no quiero que se lo lleve a la competencia quiero a ese empleado en particular asignarle
un salario fijo yo determinado con él.
Ahí es donde van a usar ustedes el campo salario generalmente le vamos a poner un cero a este campo.
Ahora me falta lo de ahora se los voy a explicar porque lo pasé por alto el campo salario le voy a asignar
por default un cero porque siempre va a ir a tomar el sueldo de el sector y la categoría y en el caso
de que yo negocie con un empleado aquí voy a colocarle con una vedette le voy a colocar el sueldo que
le voy a pagar a partir de ahora cuando el sistema de recursos humanos de liquidación de sueldo llegue
a esta tabla y vea que hay un empleado que tiene un sueldo fijo asignado a mano no va a prestar atención
al sueldo del sector y la categoría sino que va a tomar el sueldo que tenga el registro del empleador
así que por ese motivo yo he agregado aquí el tema del salario.
El siguiente campo hay muchos aided hay muchas llaves foráneas en la tabla de empleados y es lógico
porque va a estar atado a muchas tablas auxiliares el próximo es un tema que tiene que ver con política
horaria ahí va a haber una tabla llamada política horaria que la van a ver porque la vamos a desarrollar
en estos capítulos vamos a Verdon primero lo voy a completar va a ser una molín de cuatro AM signed
todo esto al signed an signed etcetc muy bien va a haber una tabla de política horaria donde yo voy
a poder crear registros de política horaria les voy a poner un nombre por ejemplo voy a crear un registro
que diga empleados administrativos yo les cuento algo es muy común que hoy por hoy en las empresas de
tecnología como el sector IT es muy volátil.
O sea los hay mucha oferta y mucha demanda de trabajo de esos puestos.
Las compañías se roban empleados unos a otros porque hay más trabajo que trabajadores Nasi que han elegido
bien al al comenzar a estudiar estos temas.
Hay empresas y doy fe porque la empresa de software en la que yo trabajo ocurre en la que los empleados
de un sector tienen una política horaria diferente a la de la otra en la empresa de la que yo trabajo
todo lo que es desarrollo tiene horario flexible y todo lo que es empleados fijos de por ejemplo sectores
administrativos de la empresa recursos humanos y demás tienen un horario fijo.
Entonces esas son políticas horarias y vamos a tener un registro donde vamos a poder indicar que va
a ser una tabla maestro detalle lo vamos a ver luego y lo voy a explicar luego donde vamos a poder asignar
a cada día de la semana un horario de entrada y un horario de salida de esa.
De ese perfil y ese perfil con todas esas dudas todos esos se Teos y todas esas configuraciones van
a poder linkea editarse a el empleado el empleado va a poder pertenecer a una política horaria entonces
la compañía va a poder decir que el empleado número uno pertenece a tal política horaria y lo bueno
de esto es que nos da la libertad de mañana pasar a un empleado de un modelo de horario diferente a
otro simplemente cambiando este valor.
Este aided en la tabla empleados entonces ahora vamos a crear el último o uno de los últimos campos
uno de los últimos tres campos que es el domicilio el domicilio es calle número piso.
Aquí le vamos a poner un poco más.
Va a ser de 150.
Aquí no vamos a poder poner ni localidad ni provincia ni país vamos a crear por ejemplo también el campo
y Meil.
Son datos muy básicos.
Aquí no hay ningún misterio vamos a ponerlo de 80 y vamos a crear por ejemplo el teléfono.
Aquí ustedes pueden colocar el teléfono de manera desglosada y en compañías que graban por ejemplo en
un campo el prefijo numérico el código de área y en otro campo graban el número bueno aquí como estamos
aprendiendo algo que tiene que ver con control y horario.
Yo lo dejé simplemente como marchar de 20 marchas de 20 porque más de 20 dígitos no tendría que ocuparme
un teléfono.
Si usted lo necesita más largo para en un mismo campo poner el teléfono el número de móvil y demás lo
pueden hacer más grande.
Total es un parchar y no va a ocupar más que lo que ocupe el dato.
Vamos a estos vamos a dejarlos así con que permita Nul está perfecto.
Vamos a ver el tema del Estado que me quedó para lo último.
El Estado yo voy a ponerle un valor de 1 por defecto.
Por qué.
Porque el Estado es en qué estado se encuentra el registro de este empleado uno es activo Zeros inactivo
pueden colocar un tercero cuarto o quinto estado por ejemplo un tercer Estado puede ser suspendido un
empleado que ha sido suspendido de la empresa.
Un cuarto Estado puede ser despedido.
Un quinto estado puede ser fallecido.
Ustedes van a saber de acuerdo a cómo quieren manejar su sistema qué valores tienen aquí.
Por supuesto esto es una tabla como le dije una tabla estados donde van a tener todos los tipos y con
sus descripciones de Estado bueno y lo que vamos a hacer ahora es crear la tabla Estados las tablas
Estado a que nosotros vamos a empezar a unir esa tabla que habíamos hablado y hacemos clic aquí.
Vamos a crear nuestra tabla estado muy bien.
Doble click aquí vamos a llamar estados.
Muy bien.
Ahora un tema muy importante yo ahora voy a crear estado aided y el tipo de dato es muy importante el
tipo de dato tiene que ser exacto.
Si yo quiero usar llaves foráneas no puedo tener ni siquiera uno de estos tildes diferente tiene que
ser exacto entonces si he estado extinguían de dos voy a tener que usar un tinen de dos
muy bien ahora Ansina vamos a revisar si estoy en lo correcto.
Vamos a venir aquí.
Estado es no Nul signed muy bien venimos aquí no han signan.
Ahora me va a permitir unirlas.
Vamos a ponerle un nombre al Estado
descripción por ejemplo.
Vamos a por ejemplo Borchardt de 50.
Total no hay problema.
Bueno muy bien.
Ahora estamos bien ya tenemos dos tablas.
Ahora vamos a unirlas lo que les voy a explicar ahora es algo diferente a lo que vimos en el capítulo
pasado la sección pasada donde nosotros hemos unido tablas usando estos estos conectores.
Estos controles lo vamos a si ustedes los han usado.
Deben saber que no son tan sencillos nos crean campos algunos siempre hay que toquetear algo están creados
mas para un tema visual para que el diagrama quede visualmente correcto pero cuando tenemos que unir
tablas y crear nuestro nuestro diagrama de entidad relación podemos usar la solapa Foreing aquí esta
solapa para ir uniendo las tablas.
Entonces qué vamos a hacer.
Nosotros tenemos una tabla maestra que es Estados y una tabla que no es maestra que es maestra quizás
para otros para otras tablas pero en este caso la relación entre empleados y estados es una relación
de hijo y de padre.
Entonces recuerden que para unir unas tablas con otras siempre la relación hay que crearla en el hijo
hacia el padre entonces venimos.
Estamos en empleados hacemos doble clic para que nos refresque aquí no basta con cambiar no me cambia
aquí abajo si siempre tengo que dar doble clic vamos a ir a Foreing aquí y vamos a crear nuestra clave
de unión en el nombre conviene usar una convención.
Yo por ejemplo uso eficaz guión bajo el prefijo y ahora Estado porque es lo que estoy tratando de unir
un Estado con su tabla estados.
Si yo no uso una convención y aquí pongo por ejemplo solamente la palabra Estado dodne en otra parte
de nuestro sistema imaginen que los sistemas tienen cientos de tablas donde en otra parte del sistema
Youzee una Foreing llamada Estado.
El motor me va a dar error.
La Foreing aquí los nombres de Foreing KI no pueden repetirse.
Entonces tengo que buscar una convención de nombre que me permita esto que no se repita.
Muy bien tenemos nuestra unión de empleado con estados y aquieta hablaba referenciar la tabla Estados.
Esto significa que voy a unir mi tabla empleados a la tabla estados muy bien.
Ya me hizo visualmente la Unión.
Ahora lo que le tengo que indicar es cuál es el campo que une con con qué campos se unen porque si no
no hay unión posible no se está uniendo por la fecha de baja y no se está uniendo por un campo en particular
que es el campo Estado aided.
Entonces hago click en estado aided y me trae de la tabla Estados cuál es el campo que recibe la Unión.
Ahora si ahora tengo estado aided de la tabla Estados Unidos a ENP bajo estado aided.
Esta es la unión de tablas fíjense que fácil todo en la solapa Foreing aquí si tienen que crear índices
los crean acá ya vamos a ver que hay una de las tablas que vamos a tener que crearle índices a mano
y luego tenemos nuestra columna muy bien bueno bárbaro tenemos ya en nuestro sistema que va a manejar
el control de horario nuestras dos primeras tablas creadas y ahora nos vamos a ir al próximo capítulo
a seguir creando tablas relaciones y van a ver cómo esto se hace cada vez más grande.
Nos vemos en el próximo capítulo.