¿Mayor numero de tablas que hiciste o viste en una BD?

Iniciado por Filantropo, 8 Abril 2020, 00:04 AM

0 Miembros y 1 Visitante están viendo este tema.

Filantropo

Por curiosidad saber cuantas tablas pueden haber en BDs complejas, algunos dicen que 1000 (mil) o mas, sera cierto o es que estan mal hecha las BDs?





Edicion:


De todas las BDs que hiciste o viste en el trabajo, universidad , etc cual fue la que tenia mas tablas y cuantas eran?


Diesan Romero

Bueno, voy a comentar un poco sin saber mucho jaja. Creo que si puede ser posible aunque el número me parece algo exagerado. No creo que el número de tablas influya mucho pero si conozco de algo llamado normalización, donde se crea una tabla con relaciones. Sin duda esta técnica conlleva a la creación de más tablas, pero hace que las consultas sean más eficientes
En mi opinión, la normalización es la base la eficiencia.

ThunderCls

"MySQL no tiene límite en la cantidad de bases de datos. El sistema de archivos subyacente puede tener un límite en el número de directorios. MySQL no tiene límite en el número de tablas. El sistema de archivos subyacente puede tener un límite en la cantidad de archivos que representan tablas. Los motores de almacenamiento individuales pueden imponer restricciones específicas del motor. InnoDB permite hasta 4 mil millones de tablas."
https://dev.mysql.com/doc/refman/8.0/en/database-count-limit.html

"En SQL Server todos los objetos que incluyen tablas, vistas, procedimientos almacenados, funciones definidas por el usuario, disparadores, reglas, valores predeterminados y restricciones. La suma del número de todos los objetos en una base de datos no puede exceder 2,147,483,647."
https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?redirectedfrom=MSDN&view=sql-server-ver15

"PostgreSQL normalmente almacena los datos de su tabla en fragmentos de 8 KB. El número de estos bloques es limitado a un entero con signo de 32 bits (poco más de dos mil millones), lo que da un tamaño máximo de tabla de 16 TB. El tamaño de bloque básico se puede aumentar cuando se construye PostgreSQL, hasta un máximo de 32 KB, dando así un límite teórico de tamaño de tabla de 64 TB."
https://link.springer.com/content/pdf/bbm%3A978-1-4302-0018-5%2F1.pdf

Los problemas o diferencias de rendimiento en una BD no vienen dados por la cantidad de tablas que se tengan pero por la cantidad de informacion que ellas manejan. A mayor volumen de datos menor rendimiento. Una BD de 1.000.000 de tablas con apenas 100 entradas almacenadas entre todas tendra mejor rendimiento que una BD con 100 tablas y 1.000.000 de entradas.
Saludos
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

Filantropo

Cita de: ThunderCls en  8 Abril 2020, 02:53 AM
"MySQL no tiene límite en la cantidad de bases de datos. El sistema de archivos subyacente puede tener un límite en el número de directorios. MySQL no tiene límite en el número de tablas. El sistema de archivos subyacente puede tener un límite en la cantidad de archivos que representan tablas. Los motores de almacenamiento individuales pueden imponer restricciones específicas del motor. InnoDB permite hasta 4 mil millones de tablas."
https://dev.mysql.com/doc/refman/8.0/en/database-count-limit.html

"En SQL Server todos los objetos que incluyen tablas, vistas, procedimientos almacenados, funciones definidas por el usuario, disparadores, reglas, valores predeterminados y restricciones. La suma del número de todos los objetos en una base de datos no puede exceder 2,147,483,647."
https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?redirectedfrom=MSDN&view=sql-server-ver15

"PostgreSQL normalmente almacena los datos de su tabla en fragmentos de 8 KB. El número de estos bloques es limitado a un entero con signo de 32 bits (poco más de dos mil millones), lo que da un tamaño máximo de tabla de 16 TB. El tamaño de bloque básico se puede aumentar cuando se construye PostgreSQL, hasta un máximo de 32 KB, dando así un límite teórico de tamaño de tabla de 64 TB."
https://link.springer.com/content/pdf/bbm%3A978-1-4302-0018-5%2F1.pdf

Los problemas o diferencias de rendimiento en una BD no vienen dados por la cantidad de tablas que se tengan pero por la cantidad de informacion que ellas manejan. A mayor volumen de datos menor rendimiento. Una BD de 1.000.000 de tablas con apenas 100 entradas almacenadas entre todas tendra mejor rendimiento que una BD con 100 tablas y 1.000.000 de entradas.
Saludos

Hola.
No me refiero al numero maximo de tablas que el motor impone.
De todas las bases de datos que hayas hecho o visto cual era la que tenia mas tablas y cuantas eran?

La bd northwind de microsoft la componen 13 tablas se me hace algo dificil de entenderlo, lograr entender una bd que pueda llegar a las 1000 o mas tablas seria imposible.

ThunderCls

Cita de: Filantropo en  8 Abril 2020, 06:53 AM
No me refiero al numero maximo de tablas que el motor impone.
De todas las bases de datos que hayas hecho o visto cual era la que tenia mas tablas y cuantas eran?

El hecho de que el motor de la posibilidad de tener tantas tablas indica que se pueden tener diseños con cantidades astronomicas de tablas que quizas ya existen en la actualidad o en algun futuro podrian existir. Creo recordar algun e-commerce con el que trabaje que tenia cerca de las 50 y tantas tablas.

Cita de: Filantropo en  8 Abril 2020, 06:53 AM
La bd northwind de microsoft la componen 13 tablas se me hace algo dificil de entenderlo, lograr entender una bd que pueda llegar a las 1000 o mas tablas seria imposible.

No existe un patron en ingenieria de software que dicte cuantas tablas debe tener un sistema, todo es subjetivo y depende de la arquitectura, los requisitos funcionales y el diseño del sistema en general. Cada software es diferente y por ende tendra diferentes requisitos, diferente arquitectura de clases y diseños de bases de datos, asi que no seria tan raro ver un gran software con el orden de los cientos de tablas en una bd o quizas los miles. Cuantas tablas crees que pueda manejar Facebook en su bd por poner un ejemplo? Luego esta el tema de los Data Wharehouse/Data Mining donde se manejan cantidades astronomicas de datos, en fin, que de poder se puede, quizas proyectos pequeños no sobrepasen nunca las 40-50 tablas a lo mucho, pero libertad tienen para hacerlo si lo necesitaran

Saludos 
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

Serapis

Ningún sistem es tan complejo que reqiera usar 1.000 tablas.
Otra cosa es que el sistema tenga varias bases de datos (de diferentes procesos) y que todas ellas formen parte de la misma aplicación y sumadas alcancen o superen dicha cantidad.
Lo habitual (en el mundo profesional) es encontrarte bases de datos con decenas de tablas.
El propio diseño de un sistema impide la complejidad al dividir el problema en sendas partes, separadas por la lógica de su cometido. El "divide y vencerás", se encarga de ello...

CitarUna BD de 1.000.000 de tablas con apenas 100 entradas almacenadas entre todas tendra mejor rendimiento que una BD con 100 tablas y 1.000.000 de entradas.
Esto solo será cierto si está mal programado el Sistema de la BD.

Los sistemas de bases de datos se crean mediante tablas Hash, con lo que la eficiencia es independiente del número de entradas en las tablas. Se tarda lo mismo en el acceso a una tabla de 5 elementos que a una de 500 millones de elementos. Porque al computar el hash, te da el índice que usa para calcular la dirección donde se localiza.
Lo dicho para los elementos de una tabla vale también para el número de tablas. Sistemas con muy pocas tablas pueden mantenerlas en un array, pero un sistema que fue diseñado para tener una cantidad imilitada (teóricamente una cantidad enorme), no puede adoptar como solución un array porque el rendimiento caería cuanto más grande fuera, que es cuando más interesa que el rendimiento no decaiga, por ello también constan en tablas hash, su acceso es por tanto igualmente constante, independientemente del número.


ThunderCls

#6
Aclaro un poco lo que dije antes.

Siempre que los indexes de las tablas puedan estar en memoria (contando con un buen diseño), el rendimiento no se veria afectado de acuerdo al tamaño o a la cantidad de records en la base de datos, evidentemente considerando el diseño de la bd, configuraciones y recursos de hardware, esto para operaciones basicas (insert/update/delete) que no modifican demasiadas filas.
Por otra parte cuando se trabaja con un alto numero de consultas mas complejas que usen o escaneen todos los registros de las tablas, el tiempo de respuesta va a incrementar linealmente de acuerdo al tamaño de la bd.

https://en.wikipedia.org/wiki/Very_large_database#Performance

Esto no quiere decir que no existan tecnicas para mejorar el rendimiento en estos casos, desde mejorar hardware (ram, ssd) hasta opciones de software como configuraciones master/slave, modificar y mejorar los indexes para dichas consultas, partitioning, clustering, etc, pero el punto que hice anteriormente es que si puede haber afectaciones de rendimiento segun el tamaño de una bd en algun determinado momento.

Cita de: NEBIRE en  8 Abril 2020, 15:35 PM
Ningún sistem es tan complejo que reqiera usar 1.000 tablas.
Otra cosa es que el sistema tenga varias bases de datos (de diferentes procesos) y que todas ellas formen parte de la misma aplicación y sumadas alcancen o superen dicha cantidad.

Acaso importa si el sistema usa las 1000 tablas en la misma bd o en bd repartidas? De cualquier manera las estaria usando y todas serian parte de su funcionamiento. El caso creo yo es que teoricamente un software pudiera usar dichas cantidades de tablas sin problemas si lo necesitara, el hecho que sea un evento "raro" o que se vea poco en el mundo profesional "comun" no le quita validez a la posibilidad, al menos eso creo yo.
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

engel lex

en uno de mis trabajos cada sede tenia que trabajar con un sistema infernal hecho por la cabeza de la organizacion.... en yii framework con 800 tablas XD corriendo en php 4 con un posgres tambien viejo...

cuando fui a la oficina principal en el departamento de TIC tenian el esquema de la DB impreso... tenia letra tamaño 8 o 9 y el papel era un cuadrado que media 2.5m de lado

todas las tablas ubicadas en un gran circulo y todo el medio miles de lineas conectado todas las relaciones entre tablas...

al lado otro esquema similar pero de 0.5m que era "las mejoras del sistema" que habia hecho desde como 2010 que fue la version final del sistema...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.