数据库设计(一)数据库概述
0. 关键词
数据,数据库,数据库管理系统,数据库系统,数据库特点
1. What 数据库是什么
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度(不是没有冗余)、与应用程序彼此独立的数据集合。
1.1 概念
1.1.1 与数据库相关的四个概念
1) 数据
数据(Data)是数据库中存储的基本对象,是描述事物的符号记录。
2) 数据库
数据库(DataBase, DB)是存储数据的仓库,是长期存放在计算机内(永久存储)、有组织的、可共享的大量数据的集合。
3) 数据库管理系统
数据库管理系统(DataBase Management System, DBMS)是大型复杂的系统软件,它位于用户和操作系统之间。可提供但不限于提供以下功能:
- 数据定义功能
- 数据操纵功能
- 数据控制功能
- 数据组织、存储和管理功能
- 事务管理和运行管理功能
- 数据库的建立和维护功能
4) 数据库系统
数据库系统(DataBase System, DBS)是一个综合的系统,一般有数据库、数据库管理系统及其开发工具、应用系统、数据管理员(DataBase Administrator, DBA)组成。
1.2 历史和发展
数据库技术的发展依赖于现实需求,同时也离不开计算机软件、硬件的发展的支持。计算机数据的管理先后经历了人工管理阶段、文件管理阶段,而后逐渐过渡到数据库管理阶段。
2. Why 为什么需要数据库
与人工管理和文件系统相比较,数据库提供了许多前两者不能提供的功能,数据库的数据面向的是现实世界,共享度高,数据冗余小,具有高度的物理独立性和一定程度上的逻辑独立性,数据使用数据模型来描述,整体结构化。提供了数据安全性、完整性、并发控制、恢复等高级功能。而这些功能都是用户迫切需要的。
2.1 数据结构化
数据内部的结构化,文件系统也可以做到,而数据库做到了数据整体的结构化。这就意味着数据之间是有联系的,就像现实世界的人脉关系。例如学校的信息系统,学校的信息系统要管理学生的学籍、选课、成绩的等,教职工的人事管理、工作量、科研等,校园内的一卡通系统的维护等等。而这一切又有着各种联系,因此这里面的学生和教职工数据不应面向某一具体应用。数据结构化不但要描述数据本身,也要描述数据之间的联系。
2.2 高共享,低冗余
数据库中的数据面向的是整个系统而不是单一应用,因此可被多个用户、多个应用所共享。数据共享可降低数据的冗余度,节省存储空间,减少相同数据间的不一致的可能性。数据的不一致性主要是由于相同源数据在不同时期的不同拷贝和修改引起的,我想用word写过论文的同学深有体会吧。
2.3 高数据独立性
数据独立性由DBMS的二级映像功能保证。
数据独立性包括:
- 数据的物理独立性
- 数据的逻辑独立性
数据的物理独立性是指用户的应用程序和存储在数据库中的数据是相互独立的,数据怎么存储由DBMS管理,用户的应用程序不需要了解,应用程序只需要处理数据的逻辑结构。当数据的物理存储发生改变时,应用程序可以保持不变。
数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,数据的逻辑结构发生改变,用户的应用程序也可以不变。
使用数据库可使数据与程序独立,数据的定义和存取有DBMS提供,大大简化了程序的编码、修改和维护的复杂程度。
2.4 统一管理和控制
为了实现数据的并发共享DBMS提供了一系列的数据控制功能:
-
数据安全性保护
DBA可为数据库的用户分配不同的权限,使每个用户只能按照规定对数据库的某些数据按给定的方式进行操作和处理。而其他数据完全不可见。 -
数据完整性检查
数据完整性检查使数据之间始终满足一定的关系,使数据正确、有效和相容。 -
并发控制
并发控制会对多用户的并发进程同时存取、修改数据库数据加以控制和协调,防止用户操作相互干扰或者破坏数据库数据。 -
数据恢复
软硬件故障、操作失误或者蓄意破坏可影响数据库数据的正确性,或者使数据丢失。数据恢复可使数据库从错误状态恢复到某一已知的正确状态。
3. How 怎么设计数据库
数据库设计一般需要经过以下几个阶段:
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施和维护
http://gurglessh.github.io/2016/04/10/数据库设计(一)数据库概述/