回答

收藏

我们为什么要关心数据类型?

技术问答 技术问答 505 人阅读 | 0 人回复 | 2023-09-14

具体来说,在关系数据库管理系统中,为什么我们在创建时需要知道列的数据类型(更可能是对象的属性)?
8 _3 c, M9 k/ d& D' W对我来说,数据类型感觉就像是一种优化,因为可以以多种方式实现一个数据点。将语义角色和约束分配给数据点,然后让引擎在内部检查和优化哪种数据类型最能为用户服务会更好吗?. ~$ v9 w- x/ D" m
我怀疑这是繁重的工作,为什么只问用户而不是做工作就更容易了。
, V- Y, j# n4 n4 W& y你怎么认为?我们要去哪里?这是现实的期望吗?还是我有一个错误的假设?
5 L5 b, n$ ~2 |' ~               
( F9 ~% t* V/ @7 j! v# v解决方案:
1 `. u$ j$ k# w) u1 T                : P+ R6 p8 p7 r! b

$ W, o1 v; q3 D+ R/ q+ M! [  z* u  |+ \, x
                没错:将数据类型分配给列是实现细节,与数据库引擎背后的集合论或演算无关。作为一个理论模型,数据库应该是“无类型的”,并且能够存储我们扔给它的任何东西。" \( g* t! Z" ?" k$ P+ k/ L, t9 u
但是我们必须在具有实际约束的真实计算机上实现数据库。从性能的角度来看,让计算机动态尝试找出如何最好地存储数据是不切实际的。
) `3 t3 ]4 s' ?例如,假设您有一个表,其中存储了几百万个整数。计算机可以-正确地-
0 ~- g2 a! o  ^' P2 Q弄清楚它应该将每个数据存储为整数值。但是,如果您有一天突然尝试在该表中存储字符串,那么数据库引擎是否应该停止所有操作,直到它将所有数据转换为更通用的字符串格式?
# L: w# p$ |; J不幸的是,指定数据类型是必不可少的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则