介绍
目录
一、什么是数据库?
定义:计算机中保存的结构化数据集,尤指可以通过各种方式访问的数据
思考:
结构化数据集:如何组织我们的数据?
可以通过各种方式访问的:通过运行各种各样的查询(query),但不改变数据库的结构
二、如何组织我们的数据?
1)响应查询是否容易?
2)修改后,我们对系统的数据完整性有什么样的保证(例如:删除、更新或插入1或多条数据到系统中)
三、数据冗余
思考:
- 如果我们删除Fred FIT1002的上课信息会有什么结果?FIT1002的课程详情(比如名称)会发生什么变化?
- 如果要你更新cindy FIT1001的上课信息,你会怎么做?(假设这个表格包括上千名都有12门上课信息的学生信息)
- 如何将FIT9133课程信息填入这个表格,但是还没有学生上这门课
1、对于上述例子为什么有这么多问题?
数据的结构会导致一些数据管理问题或数据异常
这个软件在设计之初没有考虑处理此类问题
2、如何解决?
分开学生、课程和上课信息,但是保留他们相互的关系
即:关系式模型、关系型数据库、关系数据库管理系统(RDMS)
四、数据库
实体、表、关系
数据库是表的集合和他们之间的关系
五、终端用户视角运行中的数据库
前端应用(客户端) - 网络 - 学生数据库在MySQL数据库管理系统中的实现(服务端)
六、开发者视角运行中的数据库
开发环境(客户端) - 网络 - 学生数据库(服务端)
七、开发使用了数据库的应用程序
前端共享一套后端