Diseño del sistema de gestión de bases de datos
Como probablemente sepa, una base de datos es a menudo una colección de información o datos organizados y almacenados en tablas con los esfuerzos realizados para garantizar su precisión y facilidad de recuperación. Durante el proceso de diseño en un sistema de administración de bases de datos, o DBMS, es de suma importancia que la disposición de las tablas y su relación entre sí sea correcta. También se tiene en cuenta cómo se agregan, editan y eliminan los datos. Las estructuras de la tabla, que constan de columnas y filas, también son importantes.
¿Por qué llegamos a este extremo?
Veamos un ejemplo para ver por qué todo esto es tan importante. John Tailor (cuyo apellido se escribe con una i not ay) finalmente puede irse de vacaciones de ensueño a Las Vegas. John se aloja en un hotel fabuloso. Cansado por el largo vuelo, se despertó tarde en medio de la noche y descubrió que su habitación formaba parte del pasaje al spa del hotel.
Al día siguiente, al regresar de compras, se dirigió a su habitación y fue recibido en la puerta por un nuevo invitado, John Taylor (cuyo apellido se escribe con una «y» en lugar de una «i»). Las vacaciones de sus sueños se están convirtiendo en una pesadilla y, frustrado, se retira. Entonces, la pregunta es, ¿cómo surgió esta confusión? Parece que hay fallas en el diseño del hotel, desorganización del servicio y errores de datos.
Esto no es diferente cuando se trata del diseño de DBMS. Como dice el viejo adagio informático: basura entra, basura sale. Las relaciones deficientes entre las tablas y los datos erróneos dan como resultado anomalías en la base de datos y esto afecta la calidad de la información. Entonces, ¿cómo solucionamos esto? Normalizamos los datos.
¿Qué es la normalización?
La normalización es el proceso de eliminar las incidencias existentes o posibles de anomalías, redundancias de datos e inexactitudes de datos en una base de datos. Esto limita las tablas a un propósito o entidad en particular. En el hotel, por ejemplo, una habitación es un área privada exclusiva para un solo huésped registrado a la vez y no debe servir como pasaje al spa o ser accesible para más de un cliente del spa.
Ventajas de los sistemas de gestión de bases de datos (DBMS)
Las formas normales
Se han desarrollado ciertas reglas en el diseño de sistemas de administración de bases de datos para organizar mejor las tablas y minimizar las anomalías. La etapa en la que se organiza una tabla se conoce como su forma normal (o etapa de normalización). Hay tres etapas de formas normales que se conocen como primera forma normal (o 1NF), segunda forma normal (o 2NF) y tercera forma normal (o 3NF). A medida que una tabla satisface progresivamente las condiciones de las diferentes formas normales, es menos propensa a las anomalías discutidas anteriormente.
Tipos de formas normales
Hablemos ahora de cada etapa de forma normal por turno:
Primera forma normal (o 1NF)
Se dice que una mesa está en 1NF si se cumplen las siguientes reglas:
- Las columnas deben tener valores únicos
- Las columnas deben tener nombres únicos
- Los valores de un atributo dado deben ser del mismo tipo de datos
- No hay dos registros (o filas) que sean idénticos
Supongamos que eres el nuevo peluquero de la ciudad. Desea almacenar los nombres y los datos de contacto de los clientes en una base de datos. Su personal en formación crea la siguiente tabla:
| Identificación del cliente | Nombre del cliente | ClienteNo |
|---|---|---|
| 015 | Juan | 256-2568, 524-4589 |
| 016 | Princesa | 487-5485,451-copia |
| 027 | Tom | 458-4587 |
| 028 | Claire | 478-2689, 265-1486 |
| 029 | Robert | 485-5584, visa 254 |
Mire de cerca y verá que la tabla no se ajusta a las reglas de 1NF. La razón de esto es que el personal en formación guardó los segundos números de teléfono móvil de John, Princess y Robert dentro del mismo campo, lo que viola la regla 1. Y las segundas entradas de Princess y Robert se almacenan en un formato de datos incorrecto. Todos los demás números se guardan en formato numérico, mientras que sus segundos números se almacenan como cadenas con números y letras, lo que viola la regla 3.
¿Es Normal sentir Náuseas Durante el Embarazo?
Por lo tanto, la tabla debería verse así:
| Identificación del cliente | Nombre del cliente | ClienteNo |
|---|---|---|
| 015 | Juan | 256-2568 |
| 015 | Juan | 524-4589 |
| 016 | Princesa | 487-5485 |
| 016 | Princesa | 451-2679 |
| 027 | Tom | 458-4587 |
| 028 | Claire | 478-2689 |
| 028 | Claire | 265-1486 |
| 029 | Robert | 485-5584 |
| 029 | Robert | 254-8472 |
Segunda forma normal (o 2NF)
Se dice que una mesa está en 2NF si se cumplen las siguientes reglas:
- La tabla está en 1NF
- No debe haber dependencias parciales de ninguna columna en la clave principal
Ahora, supongamos que una empresa de seguridad almacena los datos del cliente de acuerdo con la categoría de artículos en custodia segura. Los clientes pueden traer varios elementos de diferentes clasificaciones para su custodia.
Como tal, se crea la siguiente tabla:
| Número de cliente | CustName | Custodia Clase |
|---|---|---|
| 93214587 | Jorge | Joyería |
| 93866402 | Nelly | Escrituras de donaciones |
| 93786254 | Cecilio | Letras del Tesoro |
| 93214587 | Jorge | Escrituras de donaciones |
| 93786254 | Cecilio | Joyería |
Entonces, esta tabla está en 1NF, ya que cada columna contiene valores únicos y las columnas son de tipos de datos idénticos. Pero la tabla no está en 2NF porque existen dependencias parciales entre las claves primarias y algunas de las columnas. CustName depende de CustomerNumber, pero no existe una relación real entre el nombre del cliente y la categoría del artículo en custodia segura.
¿Cómo se forma la lluvia en el ciclo del agua?
El cumplimiento en 2NF implicaría separar las columnas en dos tablas, que ahora cumplirían con las reglas como esta:
| Número de cliente | CustName |
|---|---|
| 93214587 | Jorge |
| 93866402 | Nelly |
| 93786254 | Cecilio |
| 93214587 | Jorge |
| 93786254 | Cecilio |
y así:
| Número de cliente | Custodia Clase |
|---|---|
| 93214587 | Joyería |
| 93866402 | Escrituras de donaciones |
| 93786254 | Letras del Tesoro |
| 93214587 | Escrituras de donaciones |
| 93786254 | Joyería |
Tercera forma normal (o 3NF)
Se dice que una mesa está en el 3NF si las reglas son las siguientes:
- La mesa debe estar en el 2NF
- Todos los campos no primarios dependen del campo primario
- Se eliminan las dependencias transitivas
Volvamos al ejemplo de la empresa de seguridad. Su tabla original para direcciones de clientes se ve así:
| Número de cliente | CustName | Custodia Clase | Calle | Ciudad | Código postal |
|---|---|---|---|---|---|
| 93214587 | Jorge | Joyería | 2 Dan Street | Alabama | GH578T |
| 93866402 | Nelly | Escrituras de donaciones | 5 Limón Lane | ATL | DE585R |
| 93786254 | Cecilio | Letras del Tesoro | 2 Pit Aven | corriente continua | FR526E |
| 93214587 | Jorge | Escrituras de donaciones | 6 calle arriba | VC | AH458W |
| 93786254 | Cecilio | Joyería | 22 Gee Rd | Alabama | DD478H |
Las entradas para » calle » y » ciudad » están vinculadas a través del código postal. Esto se denomina dependencia transitiva entre campos no primarios. Incluso puede haber dos personas en la misma dirección, que tengan artículos en la caja fuerte. La existencia de estas relaciones transitivas (o cuando los campos no dependen por completo de los campos primarios) viola la regla 2 de 3NF.
Observará que los datos del campo CustodyClass se repiten. Si queremos llegar a un verdadero 3NF, tendremos que dividirlos en sus propias tablas. Además, volveremos a enfocar la base de datos en el artículo que se almacena, ya que un cliente puede tener varios artículos en la caja fuerte.
La tabla se corrige separando estas relaciones en tablas individuales como esta:
Tabla de clases de custodia
| CustodyClassID | Custodia Clase |
|---|---|
| 1 | Joyería |
| 2 | Escrituras de donaciones |
| 3 | Letras del Tesoro |
Tabla de direcciones
| AddressID | Calle | Ciudad | Código postal |
|---|---|---|---|
| 1 | 2 Dan Street | Alabama | GH578T |
| 2 | 5 Limón Lane | ATL | DE585R |
| 3 | 2 Pit Aven | corriente continua | FR526E |
| 4 | 6 calle arriba | VC | AH458W |
| 5 | 22 Gee Rd | Alabama | DD478H |
Tabla de clientes
| Número de cliente | Nombre del cliente | AddressID |
|---|---|---|
| 1 | Jorge | 1 |
| 2 | Nelly | 2 |
| 3 | Cecilio | 3 |
Tabla de artículos
| Identificación del artículo | Descripción del Artículo | CustodyClassID | Número de cliente |
|---|---|---|---|
| 1 | Anillo Super Bowl | 1 | 1 |
| 2 | Escritura de propiedad del lago | 2 | 2 |
| 3 | Bono de $ 500 | 3 | 3 |
| 4 | anillo de rubí | 1 | 1 |
| 5 | Título del auto | 2 | 3 |
Finalmente, conectamos todo esto en la tabla 3NF haciendo referencia a los ID de las tablas relacionadas. Ahora, nuestra estructura es 3NF. Para llegar al tipo de artículo, necesita el número de cliente de la tabla Artículos; del mismo modo, el ID de cliente se une a la tabla de direcciones.
| Identificación del artículo | Identificación del cliente |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 1 |
| 5 | 2 |
Resumen de la lección
Entonces, después de repasar todo, podemos decir que la comprensión de las anomalías de la base de datos facilita la comprensión de cómo las formas normales simplifican los datos, minimizando así las instancias o posibilidades de anomalías. A medida que una base de datos pasa por cada etapa normal, se desarrollan relaciones mejor estructuradas , haciendo que la base de datos sea a prueba de errores y eliminando las posibilidades de discrepancias en los datos.
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...
