关系型数据库的特点 关系型数据库设计原则与步骤

关系型数据库啊,就是那种用表格来存数据的。
行和列,懂吧?2 02 2 年那个时候,很多公司还在用。
比如Oracle,那个是挺贵的,一用就得花不少钱。
一个表,里面一行一行数据,一列一列字段。
想查啥,就写个查询语句,SQL,那个是标配。
写个WHERE条件,限定一下范围,就能查到。

表格存数据,方便是方便。
但你要是存完数据,想改表格结构?难!我后来才反应过来,当时设计表的时候,字段都得想好,不能随便加。
这好处是数据挺稳当,不会乱。
坏处就是你那个表结构要是定死了,以后想变就麻烦。

数据分表,按最小关系表来,听起来挺好,管理清晰。
但你要是表多了,关系复杂了,比如A表关联B表,B表又关联C表,那管理起来就头疼了。
2 02 2 年我碰过一个项目,三个表一联,查询都跑半天。

性能瓶颈,就出在表操作上。
数据表多了,查询就慢。
咋办?买更快的电脑呗。
但买电脑不是长久之计,提升空间有限。
而且关系型数据库,它就讲究这个,表多就慢。

查询呢,可以用索引,那个能快点。
数据进表前,得规范化,分拆成小块,再存到不同表里。
过程复杂,但据说能保证数据一致性。
ACID,那几个字母,关系型数据库都讲究。
高并发写,它就顶不住。
我见过一个系统,晚上写数据,白天查数据,慢的一批。

常见的关系型数据库,Oracle啊,SQL Server啊,DB2 啊,这些都不便宜。
DB2 在企业级用得多,但那价格,吓人。
MySQL呢,免费,但性能有影响。
高并发场景,它就卡壳。

设计数据库,得讲究。
需求分析,设计模型,实现,维护。
一步一步来。
表结构,字段定义,都得想清楚。
不能乱来。
数据冗余,那是要尽量避免的。
重复数据多,查询就慢。
这也是我偏激一点的想法,数据越少越好。

总之,关系型数据库,好用是好用,但表一多,就麻烦。
得看你的业务场景。
2 02 2 年的时候,很多业务还适合它,但现在,新业务,可能就不太行了。

关系型数据库的基本原理。

关系型数据库,简单说就是用表格存数据,方便找信息。
就像一个文件柜,每个抽屉放不同类型的东西,容易找。
数据库管理系统,就是那个管理抽屉的,让数据井井有条。

通俗形象地说明什么叫关系数据库

关系数据库基于关系模型,用表格存储数据。
SQL是交互接口。

1 9 8 0年代,Codd发表关系模型,奠定了基础。
现在9 0%以上的数据库用SQL。

设计时,明确列的类型和约束。
例如,年龄字段设为整数,范围0-1 3 0。
这就是规范。

别用文本存储日期,别用多个字段表示一个实体。
这就是坑。

建表时,先想好数据类型和业务规则。

什么是关系数据库?

上周整理旧电脑,翻出一张大学时代的课程表。
纸质打印,边角有点磨损,蓝黑墨水写的名字和课程。
那时候觉得课程表就是整个世界,排得满满当当。
现在再看,那些课程代码,不就像数据库里的字段名吗?学号、课程号、学分、成绩……一行行,一列列,横着竖着都有道道。

埃德加·科德写这个模型的时候,大概也没想到会有这么多应用。
超市的会员管理系统,医院的患者档案,甚至你点外卖那个APP,背后都得靠这帮数学家们定下的规矩。
1 9 7 0年提出来的时候,肯定没人敢想,几十年后,我们手指点几下手机屏幕,数据就在无数张表格里跑来跑去。
等等,还有个事,记得当年学数据库设计,老师特别强调范式,什么第一范式、第二范式,说这样数据才规范。
现在想想,那不就是在保证数据的整洁,就像整理书架,分类清楚,找东西才快嘛。

标准数据查询语言SQL,就是跟这些表格对话的密码。
我上次用SQL查询公司数据,筛选出上季度销售额超过1 0万的客户,写了半个晚上,结果就几百行数据。
你说神奇不神奇?一堆零和一,就能变成实实在在的业绩报告。
关系模型就是那套语法,规定了怎么跟这些数据打交道。
不过,现在大厂里头,好像又流行起NoSQL了,非关系型数据库,听着就有点叛逆。
它们说关系模型太死板,现实世界哪有那么多完美的联系啊。
突然想到,这跟当年我们写论文,导师总说“要逻辑清晰”,可真正做研究的时候,发现现实总是乱糟糟的,要不断调整模型。
数据库设计也差不多吧?