数据:数据库中存储的基本对象。描述事物的符号记录
数据库(DataBase,DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存
具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
三个基本特点:
永久存储
有组织
可共享
数据库管理系统(DataBase Management System,DBMS):用户与操作系统之间的一层数据管理软件,计算机的基础软件
在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复
主要功能:
数据定义功能:DDL(数据定义语言)
数据组织、存储和管理
数据操纵功能:DML(数据操纵语言)
数据库的事务管理和运行管理
数据库的建立和维护功能
其他功能
数据库系统(DBS)是由数据库、数据库管理系统、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统
特点:
数据结构化:数据库系统与文件系统的本质区别。
“整体”结构化:数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,整体是结构化的,数据之间是有联系的
数据的共享性高、冗余度低且易扩充:避免数据之间的不相容性与不一致性
数据独立性高:
物理独立性:用户‘’不关心数据在数据库中怎样存储
逻辑独立性:数据的逻辑结构改变,用户程序可以不变
数据由DBMS统一管理和控制
安全性:保护数据以防止不合法使用造成的数据泄露和破坏
完整性:数据的正确性、有效性和相容性
并发控制
数据库恢复
数据库系统的出现使信息系统以从加工数据的程序为中心转向围绕共享的数据库为中心的新阶段
数据模型:现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作的
数据模型的构成:
数据结构
数据操作
数据的完整性约束
两类数据模型:
概念模型
逻辑模型和物理模型
实体:客观存在并可相互区别的事物。如:一个学生
实体型:实体名及其属性名集合来抽象和刻画同类实体。如:学生(学号,姓名,性别)
实体集:同一类型实体的集合。如:全体学生
逻辑数据模型:
层次
网状
关系
面向对象
对象关系
半结构化
关系模型:关系数据结构、关系操作集合、关系完整性约束组成。在用户观点下,它的逻辑结构是一张二维表,由行和列组成
关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项。即不允许表中还有表
优点:
建立在严格的数学概念上
概念单一,用户易懂易用
存取路径对用户透明,具有更高的数据独立性
更好的安全保密性
缺点:
查询效率不如非关系数据模型
必须对用户的查询请求进行优化,增加了开发DBMS的难度
关系:通常说的一张表
属性:表中的一列即为一个属性
域:属性的取值范围
元组:一行
主码
分量:元组的一个属性值
关系模式:对关系的描述,一般表示为关系名(属性1,......,属性n)
层次模型:树形结构表示实体与实体间的联系。
优点:
本身比较简单,便于在计算机内实现
从根结点到树中任一结点均存在一条唯一的层次路径
较高的处理效率
完整性支持
性能优于关系数据模型,不低于网状数据模型
缺点:
现实中的很多联系是非层次性的。如多对多,一个结点有多个双亲
对插入、删除限制比较多
查询子女结点必须通过双亲结点
结构严密,层次命令趋于程序化
例子《习题册》P13
网状模型:
满足两个条件:
允许一个以上的结点无双亲
一个结点可以有多于一个的双亲
优点:
更直接地描述现实世界
良好的性能
缺点:
结构复杂,不利于最终用户掌握
DDL,DML复杂
数据独立性差——用户必须了解系统结构的细节
例子《习题册》P13
数据库系统的三级模式结构:
模式,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
一个数据库只有一个模式
外模式,也称为子模式,用户模式。它是数据库用户能够看见和使用的局部数据结构的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式通常是模式的子集。一个数据库可以有多个外模式
内模式,也称为存储模式。一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
模式的一个具体值称为模式的一个实例
模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态
外模式/模式映像:模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。当模式改变时,外模式保持不变——逻辑独立性
模式/内模式映像:当存储结构改变时,模式保持不变——物理独立性
DBA的职责:
决定数据库中的信息内容和结构
决定数据库的存储结构和存取策略
定义数据的安全性要求和完整性约束条件
监控数据库的使用和运行
数据库的改进和重组、重构
系统分析员:应用系统的需求分析和规格说明
数据库设计人员:负责数据库中的数据的确定、数据库各级模式的设计
应用程序员:负责设计和编写应用系统的程序模块,并进行调试和安装