提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
数据库复习
最近在复习数据库这门课,我把自己的复习过程中遇到的问题与整理的笔记分享给大家。这将会是一个系统的复习,如果有小伙伴在学习数据库,那我这个系列的笔记对你来说将会非常有用,希望我们共同进步。
第一章 绪论
初步讲解数据库的基本概念,介绍数据模型的组成要素和常用的数据模型,数据库系统的三级模式结构和数据库系统的主要组成部分。
1.1数据库系统概述
1.1.1数据的4个基本概念
- 数据:是数据库中存储的基本对象,描述事物的符号记录称为数据,数据的含义称为数据的语义,数据和数据的语义是不可分的。
例如1982是个数据,它可以有如下的语义:
1.1982年是某人的出生年份
2.1982年时某个国际大事件的纪念日
3.1982年可能是某本书的出版时间
所以说数据与数据的语义是不可分割的。
- 数据库:是长期存放在计算机内,有组织的,可共享的大量数据的集合。数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。
- 数据库管理系统:是和操作系统一样的计算机软件,它的主要功能包括,(1)数据定义功能,(2)数据组织、存储和管理,(3)数据操纵功能,(4)数据库的事务管理和运行管理,(5)数据库的建立和维护,(6)其他功能
- 数据库系统:包括数据库,数据库管理系统,应用程序和数据库管理员,用于组织,管理,处理和维护数据的系统
1.1.2数据库技术的产生与发展
数据处理:对数据收集、组织、存储、加工、抽取和传播的一系列活动的总和。
数据管理:数据的分类、组织、编码、存储、查询维护等活动,是数据处理的中心环节。
目的:是从大量的原始数据中抽取和推导出对人们有价值的信息。
数据库技术的产生与发展分为三个过程,如下表所示:
分析 | 人工管理阶段 | 文件系统阶段 | 数据库系统阶段 |
---|---|---|---|
时间 | 40-50年代 | 50-60年代 | 60-现在 |
管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向对象 | 某一个应用程序 | 某一个应用 | 现实世界(一个部门,企业,跨国组织等) |
数据的共享性 | 无共享,冗余度极大 | 共享性差,冗余度大 | 共享性高,冗余度低 |
数据的独立性 | 不独立,完全依赖程序 | 独立性差 | 具有高度的物理独立性和一定程度的逻辑独立性 |
数据的结构化 | 无结构 | 记录内部有结构,整体无结构 | 整体结构化,用数据模型描述 |
1.1.3数据库系统的特点
- 数据结构化:指的是整体的结构化,是数据库系统与文件系统的本质区别。数据整体是结构化的,内部也是结构化的,存储的不仅是数据还有数据之间的关系;数据库的最小存取单元是数据项,文件系统的最小存储单元是记录。
例如;一个学校的信息系统不仅要考虑教务处的课程系统,学生的选课系统,成绩系统,还要考虑学生处的学籍管理等等,因此学校信息系统里的信息是面向所有应用的,而不是其中一个,比如学生选课系统。
- 数据共享性高,易扩展,冗余度低:数据共享的好处:减少数据冗余;节约存储空间;避免数据之间的不相容性与不一致性;使系统易于扩充,易于增加新的应用
3.数据独立性
物理独立性是指用户的应用程序与数据库中数据的物理存储是是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
(此处还可以联系后面要讲到的三级结构)
- 数据由数据库管理系统统一管理和控制
(1)数据安全性保护
(2)数据完整性保护
(3)并发控制
(4)数据库恢复
1.2 数据模型
前面的概念中多次提到了数据模型这个词,本节将会具体讲解数据模型。
数据模型是对现实世界数据特征的抽象,是数据库系统的核心和基础。了解数据模型是学习数据库的基础。
数据模型是用来描述数据,组织数据,操作数据的。
数据模型应该满足三个要求:1.能够较好地模拟现实世界;2.容易被人理解;3.容易在计算机实现
1.2.1两类数据模型
第一类是概念模型,第二类是逻辑模型和物理模型。
** 概念模型是按用户的观点**对数据和信息建模,主要用于数据库设计。
第二类中
逻辑模型主要包括层次模型、网状模型、关系模型面向对象模型等,按计算机系统的观点对数据建模
物理模型描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
1.2.2 概念模型
- 实体:客观存在可相互区别。
- 属性:实体所具有的某一特性。
- 码:唯一标识实体的属性集。
- 域:属性的取值范围。
- 联系:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系实体之间的联系通常是指不同实体集之间的联系
- 实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型(我的理解是表头)。
学生号 | 姓名 | 性别 | 专业 | 年龄 |
---|
- 实体集:同意类型的实体的集合称为实体集。(我的理解是表中的全部信息)下表中的信息就是一个实体集。
学生号 | 姓名 | 性别 | 专业 | 年龄 |
---|---|---|---|---|
1001 | 张三 | 男 | 软件工程 | 18 |
1002 | 李四 | 男 | 网络工程 | 18 |
1003 | 王五 | 男 | 计算机科学与技术 | 19 |
2.概念模型的一种表示方法:实体-联系法
这个内容比较多,之后我单独出一篇。
1.2.3 数据模型的组成要素
1.数据结构
描述数据库的组成对象,以及对象之间的联系
是对系统静态特性的描述
2.数据操作
数据操作是对系统动态特性的描述
查询,插入,删除,修改
3.数据的约束条件
一组完整性规则的集合
完整性规则:实体完整性、参照完整性、用户自定义完整性
1.2.4常用的数据模型
层次模型(Hierarchical Mode)
网状模型(Network Model)
关系模型(Relational Model)
面向对象模型(Object Oriented Mode)
对象关系模型(Object Relational Model)
半结构化数据模型(semi structure data model)
1.2.5层次模型
优点
- 层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
缺点
- 多对多联系表示不自然
- 对插入和删除操作的限制多,查询子女结点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
1.2.6 网状模型
优点
- 能够更为直接地描述现实世界,如一个结点可以有
多个双亲。 - 具有良好的性能,存取效率较高
缺点
- 结构比较复杂,而且随着应用环境的扩大,数据库的
- 结构就变得越来越复杂,不利于最终用户掌握。
- DDL、DML语言复杂,用户不容易使用
- 应用程序访问数据时需要选择适当的存取路径
1.2.7 关系模型
1.关系模型的数据结构
关系模型建立在严格的数学概念的基础上
在用户观点下,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表,它由行和列组成:
- 关系(Relation),一个关系对应通常说的一张表。
- 元组(Tuple)记录或行 ,一行即为一个元组
- 属性(Attribute)列,一列即为一个属性。
- 码(Key),表中的某个属性组,它可以唯一确定一个元组。
- 域(Domain),属性的取值范围。
- 分量,元组中的一个属性值。
- 关系模式,对关系的描述
表示为:关系名(属性1,属性2,,属性n)
学生(学号,姓名,年龄,性别,系,年级)
关系必须是规范化的,满足一定的规范条件。
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。
2.关系数据库的数据操纵
增删改查
3.数据库的完整性约束
- 实体完整性
- 参照完整性
- 用户定义的完整性
后面都会详细讲到。
4.关系模型的优缺点
优点
- 建立在严格的数学概念的基础上
- 概念单一,数据结构简单、清晰,用户易懂易用
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
缺点
- 存取路径对用户透明导致查询效率往往不如非关系数据模型。
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
1.3 数据库系统的结构
1.3.2数据库系统的三级模式结构
1.模式
模式定义的内同容:数据的逻辑结构,数据之间的联系,数据的安全性,完整性要求
2.外模式
外模式(也称子模式或用户模式 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式,同时,一个外模式也可以被某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有利措施。
3.内模式
内模式(也称存储模式)是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,记录的存储方式、索引的组织方式,数据是否压缩存储、是否加密、记录结构规定
一个数据库只有一个内模式
1.3.3数据库的二级映像和数据独立性
外模式/模式映像和模式/内模式映像
1.外模式/模式
保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映像,使外模式保持不变。
2.模式/内模式
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式内模式映像,使模式保持不变。