1.1 数据库系统概述
1.1.1 数据库的4个基本概念
数据、数据库、数据库管理系统和数据库系统是与数据库技术相关的4个基本概念。
1. 数据
数据(data)是数据库中存储的基本对象。
从广义上讲,描述事物的符号记录为数据,如,数字,文字,图像,音视频等等。
数据的种类:
- 数字
- 文字
- 图像
- 图形
- 音频
- 视频
- …
数据的含义称为数据的语义,数据与其语义是不可分的。
数据没了语义,那么数据也将无意义,只是单纯的数字或文字,例如,93是一个数字,对于93这个数字本身没有什么意义,但是当它表示一个学生的某一门成绩为93分,此时数据与语义相结合,数据就有了意义。
数据的形式不能完全表示其内容,需要对数据进行解释。
在计算机中常用记录来表示和存储数据。
2. 数据库
数据库(database)即存放数据的仓库。
数据库是长期存储在计算机内的、有组织的、可以共享的大量数据的集合。
为什么要建立数据库?
– 有利于对数据进行进一步的加工处理和抽取有用的信息。
数据库的基本特征:
- 数据库中的数据按一定的模型组织、描述、存储
- 具有较小的冗余度
- 较高的数据独立性
- 易扩展性
- 可以为各种用户共享
数据库具有永久存储、有组织、可共享三个基本特点。
3. 数据库管理系统
数据库管理系统(DBMS—Database Management System)是位于用户与操作系统之间一层数据管理软件。
数据库管理系统是计算机的基础软件。
数据库管理系统的主要功能:
- 数据定义功能
数据库管理系统提供数据定义语言 (DDL) ,对数据库中的数据对象的组成和结构进行定义。 - 数据组成、存储、管理
对数据进行分类组织、存储和管理,确定以何种文件结构和存取方式在存储级上组织数据,实现数据之间的联系。 - 数据操纵功能
数据库管理系统提供了数据操纵语言 (DML) ,实现对数据库的基本操作,插入、删除、修改
查询数据库中的数据 对应 数据查询语言 (DQL) - 数据库的事物管理和运行管理
- 数据库的建立和维护
补充:
- 数据定义语言–DDL
- 数据控制语言–DCL
- 数据操纵语言–DML
- 数据查询语言–DQL
4. 数据库系统
数据库系统(DBS—Database System)是由数据库、数据库管理系统(及其开发工具)、应用程序、数据库管理员(BDA—Database Administrator)组成的存储、管理、处理和维护数据的系统
1.1.2 数据管理技术的发展
数据管理技术经历了 人工管理、文件系统、数据库系统 三个阶段
在人工管理阶段,应用程序和数据之间是一一对应的关系
在文件系统阶段,一个或一组文件对应一个应用程序
从文件系统到数据库系统标志着数据管理技术的飞跃
1.1.3 数据库系统的特点
1. 数据结构化
数据结构化是数据库系统和文件系统的 本质区别
2.数据的共享性高、冗余度低、易扩充
3.数据独立性高
数据独立性包括物理独立性和逻辑独立性:
- 物理独立性:用户的应用程序和数据库中的数据的 物理存储是相互独立 的
- 逻辑独立性:用户的应用程序和数据库的 逻辑结构是相互独立 的
4. 数据由数据库管理系统统一管理和控制
1.2 数据模型
数据模型是对现实世界数据特征的抽象。
数据模型是数据库系统的核心和基础
1.2.1 两类数据模型
数据模型应满足三方面要求:
- 能比较真实的模拟现实世界
- 容易理解
- 便于在计算机上实现
数据模型划分为两大类 1.概念模型;2.逻辑模型和物理模型
- 概念模型:
也称为信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计 - 逻辑模型和物理模型:
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等,主要用于数据库管理系统的实现
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法
把现实世界中的具体事物抽象组织为某一数据库管理系统支持的数据模型,要先将现实世界抽象为信息世界,然后将信息世界转换为机器世界
1.2.2 概念模型
概念模型是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。
1. 基本概念
- 实体:
客观存在并且可以相互区别的事物称为实体
实体即一个具体的事物,例如,一个学生、一门课、一位老师 - 属性:
实体所具有的的某一特征称为属性
一个实体可以有若干个属性
例如,一个学生的成绩、学号、姓名等等多事学生这个实体的属性 - 码(key)
可以拿来唯一标识实体的属性称为码
码可以有多个,因为实体中的属性可以唯一标识实体的不止一个,可以有多个
例如,学生的学号可以唯一标识学生实体,每个学生都由各自的身份证号也可以唯一表示实体 - 实体型
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型
实体型就是所有同类的实体中抽象出来的共同特征
例如,学生(学号,姓名,性别,出生日期,入学时间),这就是学生这个集合所抽象出来的共同特征
实体型与实体之间的关系类似于,Java中类和实例对象之间的关系,实体型是实体的模板图纸,实体是实体型的实例对象 - 实体集
就是同一类型实体的集合
例如,所有的学生就是一个实体集 - 联系
实体(型)内部的联系和实体(型)之间的联系
实体内部的联系为实体各个属性之间的联系
实体之间的联系为不同实体集之间的联系
实体之间的联系有 一对一、一对多、多对多等
2. 概念模型的一种表现方式:
实体–联系方法
1.2.3 数据模型的组成要素
数据模型的组成要素:
数据模型通常由数据结构、数据操作、数据的完整性约束条件三部分组成
1. 数据结构
数据结构描述数据库的组成对象以及对象之间的联系
2. 数据操作
数据操作是指对数据库中的各种对象(型)的实例允许执行的操作的集合,包括操作以及有关的操作规则
数据库主要有 查询和更新(增、删、改) 两大类操作
3. 数据库的完整性约束条件
数据库的完整性约束条件是一组完整性规则
完整性规则即对存储在数据库中的数据进行一定的约束
例如,一个人的年龄范围在0-120岁之间,姓名非空等等
1.2.4 常用的数据模型
数据库中主要的逻辑模型:
- 层次模型
- 网状模型
前面两种为非关系模型、格式化模型 - 关系模型
- 面向对象数据模型
- 对象关系数据模型
该模型为对象模型 - 半结构化模型
在格式化模型中实体用记录表示,实体的属性对应记录的数据项(字段)
实体之间的联系在格式化模型中为记录之间的两两联系
在格式化模型中数据结构的单位基本层次联系
基本层次联系:两个记录以及之间的一对多(或一对一)的联系
由于子女节点可以有一个或多个,所以一对一(一对多)