Documentos de Académico
Documentos de Profesional
Documentos de Cultura
“Bases de datos”
“Contenido temático”
2) Definición de Sistema y Construcción del “Contexto” con base en la lógica de las clases.
- Inner Join
- Subconsultas
- Procedimientos Almacenados:
● Cursores
● Trigger
Compromiso curso:
✔ Presencialidad
✔ Respeto
✔ Cumplimiento en trabajos
✔ Actitud y atención en clase
100% de cada
corte
Conclusiones: En la presentación del curso de Bases de Datos se supo el
Contenido temático, el compromiso del curso y la forma de calificaciones. Las
bases de datos no se empiezan programándolas, sino que antes de llegar a ese
punto deben ser pensadas “modeladas” para que cuando llegue el instante en
que se acuda al motor de desarrollo con el cual crear la base de datos, se haya
previamente analizado el papel de la base de datos en la funcionalidad del
programa.
✔ Conceptos Generales/Definición/Escenarios:
Cuando se habla de Bases de Datos, se debe involucrar varios escenarios, y estos son:
- El sistema
- El diseño
- El motor
- La gestión
- Diseño Documental
Tabla 2
Cuando el Diseño corresponde a una Base de Datos Relacional, hay que
anteponer un “Modelado” previo, que se relaciona con el “Modelo Conceptual” y
que está de la mano con el denominado “Modelo Entidad-Relación MER”, creado
por Peter Chenn; este modelo se apoya desde luego en la “Lógica del Negocio
del Sistema” y sustentado en la denominada “Ley de la Autodeterminación” y “Ley
de la Reflexividad” propuesta por Armstrong, permite representar las “Clases” del
sistema como “Entidades” y la articulación de las Entidades como “Relaciones”,
de una manera muy gráfica, pero obedeciendo una metodología.
Lenguajes de las Bases de Datos Relacionales, los cuales van de la mano con el
“Motor” encontramos: MySQL, SQLServer, Oracle, y otros, los cuales se
fundamentan en unas cláusulas y directivas estándares, que cambian muy poco
dependiendo del motor.
- Insert
- Update
- Delete
- Select
- Definición del sistema y construcción del contexto con base en la lógica del negocio
Son los
- Lectura
- Abstracción
- Modelo de la lógica
Narrativa del cliente
Lectura y abstracción:
Modelo de la lógica
Clase 1 y Clase 2: Son los escenarios que se quieren controlar de la lógica, los cuales en términos
de la Ingeniería de Software, se denominan “Clases”.
Ejemplo:
La compañía XXX dedicada como objeto social a la “Venta de calzado”, fue creada
en …, domiciliado en …, con un capital de $... .
La compañía está interesada en “Controlar a través del computador las facturas que se
producen por las compras efectuadas por los clientes”, de esta manera se facilitará a los
vendedores y ejecutivos mantener una relación más directa con los productos y los
clientes, etc.
Téngase en cuenta que los sistemas en su expresión absoluta, sin pensar en el
computador, se hallan dentro de los sectores productivos de la economía:
Gestiona y administra el
sector primario y Comercialización
Aprovecha al secundario
sector primario
Ejemplo:
Los clientes son constructores de obras civiles los cuales de manera permanente
alquilan equipos y maquinarias para la excavación de terrenos. El alquiler de los equipos
se sucede a través de un contrato de prestación de servicios, lo cual ha motivado a la
empresa a construir una solución informática que controle las maquinarias prestadas a
través de los contratos suscritos con los clientes.
- Contexto del Sistema/Primera Forma Normal 1FN y Segunda Forma Normal 2FN -
Está claro que solo se procede a construir el Diseño de la Base y el Diseño de Software, si
existe el contexto del sistema.
Con base en el “Contexto” se construye una expresión “exacta” de la lógica del negocio
(del sistema), compuesta por las “Clases principales”, como sigue:
Entre las “Clases” del contexto de un sistema siempre se define de “arriba hacia
abajo”, una Relación (R) de uno (1) a muchos (m); esta Relación (R) se denomina
“Relación Natural”.
1. Monofuncional Simple:
2. Monofuncional Extendido
3. Multifuncional Simple:
4. Multifuncional Extendido:
Nota: La representación se puede relacionar con la (Representación tradicional)
Para cumplir con lo anterior, se habla de las siguientes Formas Normales FN:
1. Elegir el “atributo identificador” de c/u de las clases del contexto, que se denominarán “llaves
primarias” (Primary keys - PK)
2. Elegir los “atributos” que se pueden expresar como “códigos” dentro de cada una
de las clases, estas se llamarán “llaves secundarias” ó “llaves foráneas FK”, si las
llaves secundarias son identificadas desde el mismo momento de la
“Autodeterminación”, las llamaremos “Foreign Key por defecto DFK”
Los contextos manejan la relación (R) que se conoce como Relación Natural
relación que se da cuando entre en la multiplicidad leyendo el contexto, la relación
de las dos
“Entidades” es uno a muchos. Esto significa que en la lectura del contexto la clase
antecesora es de (1) y la sucesora de muchos (m). La relación entre “Entidades”
se asemeja a la herencia de “Clases” en UML. Hecho eso, se procede con la
Normalización, que es una práctica que garantiza la “No Redundancia”,
“funcionalidad” y “navegabilidad” en la información del sistema. En la primera
forma normal se asignan los atributos propios de cada clase (nombres), o sea, de
forma “Absoluta”; dentro de los atributos se buscan cual puede ser llave primaria
y cuales las llaves secundarias, toda esta forma normal, regida por la “Ley de
Autoderminación” de Armstrong.
22 /02/2020 – Clase N°5
-Contexto y
Normalización 1FN –
2FN-
Normalización:
- Definición del tipo de Dependencia Funcional -DF, que corresponde a una Relación
Inversa que se sucede de abajo hacia arriba, es decir entre la “Clase sucesora” y la
“Clase predecesora”.
Cuando existiendo una “Relación Natural” de una (1) a muchas (m) se obtiene una
“Relación Inversa” de uno (1) a uno (1).
Ejemplos:
ii. Cada una (1) de las muchas facturas son de ese (1) cliente y
no de otros = Relación Inversa
Cuando existiendo una “Relación Natural” de uno (1) a muchos (m), se obtiene una
“Relación Inversa” de uno (1) a muchos (m).
Ejemplos:
i. (Muchas facturas) cada una (1) de las muchas (m) facturas, tiene
muchos (m) artículos = Relación Natural
ii. Cada uno (1) de los muchos (m) artículos de cada una de las
muchas facturas, pueden estar también en otras muchas (m)
facturas.
- Modelo Matemático de las BD -
FKD (Foreign Key por Defecto): Son aquellos atributos que desde la
autodeterminación se manifiestan como posibles “códigos”.
{nofac (PK), fechfac, valtot, sucur (FKD), idcli (FKP – Foreign Key por Proceso)}
Álgebra proposicional
Diseño Bases de
Datos
2FN
- PK-FKD
- Asignar DF(E,NE)
Código
Facturas {nofac (PK), fechfac, valtot, sucur (FKD), idcli (FKP – Foreign Key por Proceso)}
Sucursal {sucur (PKE – Primary Key Emergente), dir, tel}
- Modelo Entidad-
Relación Reglas:
Scrip key(sucur)
t );
create Database
create table
lugares (
lugnac int,
nomlug
varchar(30),
primary
key(lugnac)
);
create table
clientes (
idcli int,
nomcli
varchar(20),
fechnac date,
lugnac int,
primary key(idcli),
);
create table
sucursales (
sucur int,
dir varchar(25),
primary
c (10),
r fechfac
e date, valtot
a int(12), idcli
t int, sucur
e int,
t primary key(nofac),
l sucursales(sucur)
e );
t
Conclusiones: Contando ya con un Modelo pseudomatemático, se parte a construir el
Modelo Entidad-Relación y el Modelo Relacional. El MER se hace organizando en un
esquema con las formas rectángulo (entidades), óvalo (atributos) y rombo (relaciones)
con líneas con el lado blanco hacia la derecha y el negro hacia la izquierda, dibujándose el
modelo de izquierda a derecha desde como conjunto inicial, la entidad que resolvió la
última clase del contexto con sus atributos, y sucesivamente hacia la derecha se van
poniendo las clases que tienen la PK de la FK de la clase de la izquierda (con sus
atributos) hasta quedar organizado.
Para el Modelo Relacional, se siguen las mismas prácticas que en el Modelo Entidad-
Relación, solo que esta vez en forma de tablas poniendo los atributos (campos) dentro de
la tabla y las relaciones se siguen por una línea que arranca con tres paticas desde la
clase que tiene la FK, hasta la que tiene el PK de la clase anterior.
Con todo lo anterior, ya se puede proceder a usar el motor para implementar el modelo
diseñado, se comienza con la creación de la base de datos con el comando create
database name; (con name como el nombre a escoger para la base de datos).
Luego para crear las entidades se usa el comando create table tbl1(); (con tbl1 como el
nombre a escoger para la entidad), para el motor las entidades son las tablas; se abre y
cierra paréntesis poniendo al final del de cierre un punto y coma. Adentro van todos los
atributos de cada clase, las PK se identifican con el comando primary key(atributo); (La
separación entre cada atributo se hace con una coma excepto en el último atributo de la
tabla). Las FK se identifican con el comando foreign key(name) references
entidadPK(name) (con entidadPK como la clase que contiene la PK de la FK), la FK de la
clase donde esta se coloca debe tener el mismo nombre que la PK en la clase a la que
hace referencia con references el comando.
No hay que olvidar que el motor es el paso menos importante, ya que lo que hizo que el
código funcionará fue el diseño, por eso al momento de ya escribir las líneas de código
no debe existir ningún error semántico (de lógica), la ingeniería vale por el pensamiento
y no solo por la técnica (programar) que para eso existen los técnicos.
29 /02/2020 – Clase N°7
Si un contexto tiene DFE y DFNE, la DFNE prima, por lo cual se debe llevar a 5FN la base de datos
Notas:
DML (Lenguaje de Manejo de Datos) Básico: Insert (Grabar), Select (Leer), Delete, Update
“Primera captura de Datos”
use base1;
values(1, “Bogotá”);
values(100,’Pedro’,’1978-12-10’,1);
select * from
sucursales; select *
from facturas;
Conclusiones: Existen algunas notaciones para saber la DFE o la FKD como lo son: La
Disyunción o Desunión parcial y las Exclusividades.
Luego de codificar las entidades (tablas) y sus atributos (PK, FK) con el uso del DDL, la
parte de la gestión de la base de datos comienza con el DML (Lenguaje de manejo de
datos). Recordando que la base de datos se conforma por: Sistema, diseño, motor y
gestión, esta última parte surge al ya haberse pensado el diseño como haberlo
implementado en el motor. La gestión se caracteriza por como su nombre lo indica
“gestionar”, o sea, manejar los datos de las tablas en la base de datos en función de la
lógica del negocio, ya que toda base de datos surge y sirve en función de la lógica del Core
o núcleo del sistema, que inicialmente como se vio en el contexto solo la tiene el cliente y
es inmutable por el programador. La lógica que sí puede pensar y hacer libremente el
programador es la lógica de reportes, que se trata de la forma de llegar a los resultados
que el cliente espera sin importar el modo en cómo se llegó a la solución de lo que planteó
la lógica del negocio, ahí si puede intervenir el programador; a esta lógica también se le
conoce como lógica de programación, la cual es totalmente distinta a la establecida por el
sistema del cliente, por ende un Ingeniero de Sistemas lo que no hace es crear sistemas
sino en cambio, automatizar los sistemas ya existentes.
Las clases secundarias no heredan nada porque ellas lo que hace es complementar a las
clases primarias, principalmente por ser solución de la Dependencia Funcional que haya
entre las clases principales, brindando los atributos que consolidan a estas clases como
las FKP o PKE necesarias.
A la hora de trabajar con el DML se usan varias instrucciones, algunas básicas son: Insert,
Delete, Select y Update. Estas instrucciones permiten hacer el manejo de los datos, por
ejemplo, Insert permite crear varias entidades llenando uno o todos sus campos
(atributos), Delete lo que hace es borrar lo ingresado, Select permite ver la información
existente de alguna o todas las instancias de una Entidad (identificadas por las PK), y
Update actualizar los campos existentes. Cuando se ingresan datos a esto se le llama
“Captura de datos”.