数据库与服务器、客户端的层次关系

关于数据库

程序中需要存储数据的方式:

1 变量(列表、元组、集合、字典、嵌套)

2 外存(文件)(*.ini)

3 表格、Excel(*.xls、*.xlsx、*.csv)

4 结构化数据库

数据库中的基本概念

记录(Record):数据库中的一行

字段(Field):数据库中的一列

实体(Entity):现实中客观存在并可以被区分的事物。比如:学生、课程

属性(Attribute):实体锁具有的特征。比如:对于学生实体,所体现的属性有:学号、姓名、年龄、性别

关系(RelationShip):实体与实体之间的依赖。包括:一对一、一对多、多对多。

以上三者(实体、属性、关系)可以组成ER图(实体关系图)

通过Visio的数据库模型图建立表:

建表的时候需要考虑范式的约束

一般有如下范式:1NF 2NF 3NF BCNF 4NF 5NF

1NF:属性不可分

姓名

电话号码

年龄

座机

手机

张三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

如上,因为电话属性可以拆分为座机和手机,所以不满足1NF,修改如下:

姓名

座机

手机

年龄

张三

020-84444444

13777777777

23

李四

020-85555555

13888888888

34

2NF:符合1NF。非主属性完全依赖于关键字

学号

姓名

课程编号

考试成绩

101

张三

201

73

102

李四

202

53

该表中的依赖关系:

学号——姓名

(学号、课程编号)——考试成绩

该表的关键字是:(学号、课程编号)

这里的非主属性姓名依赖于学号,是关键字的一部分,而不是全部。所以不满足2NF

需要拆分成两个表

学号

姓名

101

张三

102

李四

学号

课程编号

考试成绩

101

201

73

102

202

53

这样就满足2NF了

3NF:符合1NF和2NF,并且消除传递依赖

学号

课程编号

老师

职称

101(张三)

201(高等数学)

张老湿

砖家

102(李四)

202(大学英语)

陈教授

叫兽

103(王五)

202(大学英语)

陈教授

叫兽

显然满足1NF

该表的关键字是:(学号、课程编号)。后面的非主属性完全依赖于关键字,所以满足2NF

(学号、课程编号)——上课老师

老师——职称

像这种A依赖于B,B依赖于C的设计,就称为传递依赖,是不满足3NF

需要拆分成两个表

学号

课程编号

老师

101(张三)

201(高等数学)

张老湿

102(李四)

202(大学英语)

陈教授

103(王五)

202(大学英语)

陈教授

老师

职称

张老湿

砖家

陈教授

叫兽

这样就满足了3NF的标准了

后面还有BCNF、4NF、5NF。但是我们设计数据库一般要求达到3NF即可

最新文章

  1. HDU 1003 maxsum
  2. 一个asp采集程序
  3. jQuery 一些神奇的选择器写法
  4. MySQL 系列(五) 多实例、高可用生产环境实战
  5. 坚持不懈之linux haproxy的配置文件关键字查询手册
  6. 理解sizeof
  7. KMeans聚类 K值以及初始类簇中心点的选取 转
  8. Access forbidden! XAMPP虚拟主机的问题
  9. 嵌入式C语言之---模块化编程
  10. Android 判断当前设备是手机还是平板
  11. java对象Integer不能引用传递
  12. MySQL sql 执行步骤
  13. python——迭代器和生成器
  14. Very Long Suffix Array
  15. Jenkins+Jmeter持续集成笔记(三:集成到Jenkins)
  16. 【POJ2676】sudoku 搜索
  17. Elastic Stack之搜索引擎基础
  18. 8 -- 深入使用Spring -- 5...2 使用@Cacheable执行缓存
  19. \Temporary ASP.NET Files\root\文件不断增长,如何处理?
  20. 如何成为一名合格的CTO?(转)

热门文章

  1. 【C语言】数组名传递给函数,数组的sizeof变为4的原因
  2. JS 全屏代码
  3. 2.Swift快速浏览
  4. 第三部分:Android 应用程序接口指南---第二节:UI---第十二章 自定义组件
  5. java中自定义注释@interface的用法
  6. 根据IP获取国家
  7. Android调用相机拍摄照片并显示到 ImageView控件中
  8. python进行数据分析
  9. 【转帖】流程与IT管理部——IT支撑业务变革的必然趋势
  10. Yii2手动下载PHPExcel引入