Está en la página 1de 7

NORMALIZACION DE BASE DE DATOS.

Es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras
el paso de modelo entidad relación al modelo relacional.

Las bases de datos relacionales se normalizan con el fin de:

- Evitar la redundancia de datos


- Disminuir problemas de actualización de los datos en las tablas.
- Proteger la integridad de los datos.

REGLAS DE CODD

En las bases de datos del mercado se hacen llamar relacionales, pero lo único que hacen es
guardar información sin ser normalizada para eso se crearon las 12 reglas de codd.

1. REGLA DE LA INFORMACION: cualquier cosa que no exista en una tabla no existe en un


todo. Toda información incluyendo nombre de tablas, nombres de vistas, nombres de
columnas, y los datos de las columnas deben estar almacenadas en tablas dentro de la
base de datos.
2. REGLA DEL ACCESO GARANTIZADO: cada ítem de datos debe ser lógicamente accesible al
ejecutar una búsqueda que combine el nombre de la tabla, su clave primaria, y el nombre
de la columna. Esto se refiere que al contener lo antes mencionado nos debe devolver un
único valor, por eso es que las claves primarias son de carácter obligatorio.
3. TRATAMIENTO SISTEMATICO DE LOS VALORES NULOS: un sistema gestor base de datos
debe ser capaz de soportar valores nulos en el lugar de columnas cuyos valores sean
desconocidos. Como por ejemplo al no saber la dirección de un empleado se debe de
dejar en nulo y la base de datos debe ser capaz de manejar esto.
4. REGLA DE LA DESCRIPCION DE LA BASE DE DATOS.: la descripción de la base de datos es
almacenada de la misma manera que los valores ordinarios, esto es en tablas, y columnas,
y debe ser accesible a los usuarios autorizados por medio de SQL.
5. REGLA DEL SUBLENGUAJE INTEGRAL: debe haber por lo menos un lenguaje integral para
soportar la definición de datos, la manipulación de datos, la definición de vistas,
restricciones de integridad, y control y autorizaciones de transacciones.
6. REGLA DE LA ACTUALIZACION DE VISTAS: todas las vistas que son teóricamente
actualizables, deben ser actualizadas por el sistema mismo.
7. LA REGLA DE INSERTAR Y ACTUALIZAR: la capacidad de la base de datos de manejar
operandos simples no solo se aplica para recuperación de datos y consulta de datos, sino
que tienen que manejar , las inserciones , actualizaciones, borrado de datos y la selección
de los mismos ( INSERT, UPDATE, DELETE, SELECT).
8. REGLA DE LA INDEPENDENCIA FISICA: el acceso de usuarios a la base de datos puede ser
desde la base de datos en si o por medio de aplicaciones o terminales y deben permanecer
consistentes lógicamente cuando haya cambios en los datos almacenados.
9. REGLA DE LA INDEPENDENCIA LOGICA: los accesos por aplicación y por terminales deben
permanecer lógicamente inalterables cuando quiera que se hagan cambios según los
permisos asignados en las tablas de las base de datos.
10. REGLA DE LA INDEPENDENCIA DE INTEGRIDAD: todas las restricciones de integridad
deben ser definidas en los datos , y almacenables en catálogos, no en el programa de
aplicación.
11. REGLA DE LA DISTRIBUCIOS: el sistema debe poseer un lenguaje de datos que pueda
soportar que la base de datos este distribuida físicamente en distintos lugares sin que
estos afecten o alteren los programas de aplicación.
12. REGLA DE LA NO SUB-VERSION: si el sistema tiene lenguajes de bajo nivel , estos
lenguajes no pueden ser usados de ninguna manera para violar la integridad de las reglas
y restricciones expresadas en un lenguaje de alto nivel como SQL.

BASE DE DATOS: es un almacén que nos permite guardar grandes cantidades de información de
forma organizada para que luego podamos buscar y encontrar fácilmente.

CARACTERÍSTICAS DE LAS BASES DE DATOS:

- Independencia lógica y física de los datos.


- Redundancia mínima
- Acceso concurrente de múltiples usuarios.
- Integridad de los datos.
- Consultas complejas optimizadas.
- Seguridad de acceso y auditoria.
- Respaldo y recuperación.
- Acceso a través de lenguajes de programación estándar.

SISTEMA DE GESTION DE BASE DE DATOS(SGBD)

Son un tipo de software muy específico dedicado a servir de interfaz entre la base de
datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de manipulación de
datos(DML), de un lenguaje de definición de datos(DDL) y de un lenguaje de consulta.

MODELO DE ENTIDAD RELACION (ER)

Son una herramienta para el modelo de los datos de un sistema de información. Estos
modelos expresan entidades relevantes para un sistema de información.
CARDINALIDAD DE LAS RELACIONES

- UNO A UNO: una instancia de la entidad A se relaciona con una y solamente una entidad
B.
- UNO A MUCHOS: cada instancia de la entidad A se relaciona con varias instancias de la
entidad B
- MUCHO A MUCHOS: cualquier instancia de la entidad A se relaciona con cualquier
instancia de la entidad B.

SQL ( lenguaje de consulta estructurado)

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto


nivel estándar para sistema de base de dato relacionales.

SQL agrupa 3 tipos de sentencias con objetivos particulares.

- Lenguaje de manipulación de datos (DML)


- Lenguaje de definición de datos (DDL)
- Lenguaje de control de datos (DCL)

DDL: grupo de sentencias de SQL que soportan la definición y declaración de los objetos de la
base de datos. Objetos tales como la base de datos misma (DATABASE) , tablas (TABLE), vistas
(VIEW), procedimientos almacenados (PROCEDURE) y disparadores (TRIGGERS).

Valores por defecto ( CREATE ALTER Y DROP).

DML: grupo de sentencias de SQL para manipular los datos que están almacenados en la base de
datos a nivel de filas (tuplas), y/o columnas (atributos), ya sea que requiera que los datos sean
modificados, eliminados, consultas o que se agreguen nuevas filas en las tablas de las bases de
datos.

Valores por defecto ( INSERT UPDATE DELETE Y SELECT)

DCL: grupo de sentencias SQL para controlar las funciones de administración que realiza el
DBMS tales como la atomicidad y seguridad.

Valores por defecto (COMMIT TRANSACCTION , ROLLBACK TRANSACCTION, GRANT, REVOKE).


DICCIONARIO DE DATOS:

Es un listado organizado de todos los datos y pertenecen a un sistema.

Es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que
se van a utilizar en el sistema que se programara, incluyendo nombre descripción alias contenido y
organización.

En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo
de datos de todo un sistema.

METADATOS

Información organizada de los datos u objetos (diccionario de datos) almacenados en la base de


datos y que en algunas ocasiones son registros que sirven para realizar parametrizaciones.

TRANSACCIONES

Se llama transacción a una colección de operaciones que forman una unidad lógica de trabajo.
Esta delimitada por instrucciones de inicio y fin de la transacción

ACID

1- ATOMICIDAD
2- CONSISTENCIA
3- INTEGRIDAD
4- DIPONIBILIDAD

ATOMICIDAD: quiere decir que una transacción o varias transacciones se deben de finalizar de
forma concurrente.

CONSISTENCIA: es una ejecución aislada de la transacción ( es decir, sin otra transacción que se
ejecute concurrentemente ) conserva la consistencia de la BD

AISLAMIENTO (isolation): es cuando 2 o mas transacciones se ejecutan concurrentemente sus


efectos deben ser aislados.

DURABILIDAD: una ves que la transacción a terminado su efecto no puede perderse en caso de
fallas del sistema ni siquiera si la falla ocurre inmediatamente después de terminar la transacción.

ESTADOS DE UNA TRANSACCION

1. Activa la transacción pertenece en este estado durante su ejecución:


2. PARCIALMENTE COMPROMETIDA: la transacción pasa a este estado cuando acaba
de realizar la última instrucción.
3. FALLIDA: la transacción pasa a este estado tras descubrirse que no puede continuar la
ejecución normal.
4. ABORTADA: la transacción pasa a este estado después de haber restablecido la base
de datos a un estado anterior .
5. COMPROMETIDA: la transacción pasa a este estado tras completarse con éxito.

PROGRAMACION ORIENTADA A OBJETOS

Es un paradigma de programación que viene a innovar la forma de obtener


resultados. Los objetos manipulan los datos de entrada para la obtención de datos de
salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten
la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten
al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas:
herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.

Abstracción
Denota las características esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan
estas características. Los procesos, las funciones o los métodos pueden también
ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para
ampliar una abstracción. El proceso de abstracción permite seleccionar las
características relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real. La abstracción
es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante
ella podemos llegar a armar un conjunto de clases que permitan modelar la
realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a
una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la
cohesión (diseño estructurado) de los componentes del sistema. Algunos autores
confunden este concepto con el principio de ocultación, principalmente porque se
suelen emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el
mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento
correspondiente al objeto que se esté usando. O, dicho de otro modo, las
referencias y las colecciones de objetos pueden contener objetos de diferentes
tipos, y la invocación de un comportamiento en una referencia producirá el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto
ocurre en "tiempo de ejecución", esta última característica se llama asignación
tardía o asignación dinámica. Algunos lenguajes proporcionan medios más
estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y
la sobrecarga de operadores de C++.
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando
una jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser
definidos y creados como tipos especializados de objetos preexistentes. Estos
pueden compartir (y extender) su comportamiento sin tener que volver a
implementarlo. Esto suele hacerse habitualmente agrupando los objetos
en clases y estas en árboles o enrejados que reflejan un comportamiento común.
Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple;
siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual
para evitar la duplicación de datos.
Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una aplicación
en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicación en sí y de las restantes partes.
Estos módulos se pueden compilar por separado, pero tienen conexiones con
otros módulos. Al igual que la encapsulación, los lenguajes soportan la
modularidad de diversas formas.
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto
expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con
los objetos de la clase. El aislamiento protege a las propiedades de un objeto
contra su modificación por quien no tenga derecho a acceder a ellas; solamente
los propios métodos internos del objeto pueden acceder a su estado. Esto asegura
que otros objetos no puedan cambiar el estado interno de un objeto de manera
inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos
lenguajes relajan esto, permitiendo un acceso directo a los datos internos del
objeto de una manera controlada y limitando el grado de abstracción. La aplicación
entera se reduce a un agregado o rompecabezas de objetos.
Recolección de basura
La recolección de basura (garbage collection) es la técnica por la cual el entorno
de objetos se encarga de destruir automáticamente, y por tanto desvincular la
memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
Esto significa que el programador no debe preocuparse por la asignación o
liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la
liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que
se extendieron para soportar el Paradigma de Programación Orientada a Objetos
como C++ u Object Pascal, esta característica no existe y la memoria debe
desasignarse expresamente.

También podría gustarte