学习笔记——数据库概论

○、绪论

一、数据库的发展历史阶段:

1.人工管理阶段:借助打孔机实现。

2.文件系统管理阶段:使用磁盘、磁鼓存储。

特点:数据在记录内有结构,但数据整体无结构。数据的逻辑改变导致应用程序也要跟着改变。应用程序必须自己进行权限控制、数据的一致性检查,并发控制等功能。

3.数据库系统管理阶段:数据库管理系统(DBMS)

数据模型是数据库系统的核心和基础

将传统数据库系统分为网状数据库(典型:集成数据存储IDS)、层次数据库(典型:IMS)、关系数据库三类。

一、数据库基础

一、数据库的基本概念

DBMS(Database Management System):

数据库管理系统,操纵和管理数据库的大型软件,建立使用和维护数据库

同一时间内对多个数据库进行统一的管理和控制,保证数据的安全性和完整性。

数据模型

1.是现实世界数据特征的抽象,用于描述一组数据的概念和定义。

2.是数据库中数据的存储方式,是数据库系统的基础。

3.数据模型的集中类型:层次数据模型、网状数据模型、关系数据模型。

(1)、层次模型:特点:有且只有一个结点,没有双亲结点,这个结点称为根结点;

根结点的其它结点有且只有一个双亲结点;每个结点表示一个记录类型;这种联系是父子之间一对多的联系。没有子女记录值能够脱离双亲记录值单独存在。

优点:数据结构简单清晰,数据库的查询效率高提供了良好的完整性支持。

缺点:现实世界中很多联系非层次性,不适用于节点之间多对多的关系。查询子女结点必须通过双亲结点。结构严密,层次命令趋于程序化。

(2)、网状模型

特点:允许一个以上的节点无双亲。一个结点可以有多于一个的双亲。

优点:能够更为直观描述现实世界。具有良好性能,存取效率高。

缺点:结构比较复杂。不利于用户最终掌握。

(3)、关系模型

特点:就是由若干行和若干列形成的二维表

优点:建立在严格的数学概念基础上。概念单一。对数据的检索和更新结构也是关系。具有更高的独立性、更好的安全保密性。

缺点:存取路径的隐蔽导致查询效率不如其他数据模型

二、数据库用户

(一)、最终用户:分为临时用户(通过SQL查询访问DBMS的用户,有一定数据库操作基础)和初级用户(通过菜单项查询访问DBMS的用户,属于大部分用户)

(二)、应用程序员:使用DBMS并为初级用户开发应用程序的用户

(三)、数据库管理员(DBA)

从事管理和维护DBMS的相关工作人员的统称。负责创建数据库、加载表、执行后台工作任务、改变物理存储等。

三、关系和对象关系DBMS

关系数据库:必须遵循第一范式规则,即每一个列必须包含一个单一的、非结构化的值。

对象关系模型也是"填表式"模型,但去掉了"一事一地"(第一范式)的限制。

四、关系模型的术语

常用术语:表、列、行。关系(对应表),元组(对应行),属性(对应列)

域和数据类型:每个列都要有对应的数据类型。域是一组相同数据类型的集合,表示属性的取值范围,如自然数、整数、字符串集合都可以是一个域。

表的键,超键,空值:

候选键:是指在关系模式中能唯一标识元组的属性组合。也就是说,候选键是一个最小的属性集合,能够唯一地确定一个元组。如果一个关系模式存在多个候选键,那么其中任意一个候选键都可以作为主键来使用。

超键:是指在关系模式中能唯一标识元组的属性组合,可以包含冗余的属性。超键可以是候选键,也可以是包含候选键的属性组合。超键的定义是宽泛的,它可以包含多余的属性,但是不能包含冗余的属性。

空值:不知道或没有被定义,一旦我们知道该取什么值就会去填写这个值。

数据模型三要素:数据结构、数据操作、完整性约束。数据结构是对数据系统静态特性的描述,数据操作是对数据库系统动态特性的描述。

相关推荐
m0_689618281 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记
Ace'1 小时前
每日一题&&学习笔记
笔记·学习
IM_DALLA1 小时前
【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
学习·fpga开发·verilog学习
挥剑决浮云 -1 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
丶Darling.1 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
新晓·故知2 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
魔理沙偷走了BUG3 小时前
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
笔记·数学分析
z樾3 小时前
Github界面学习
学习
道爷我悟了4 小时前
Vue入门-指令学习-v-html
vue.js·学习·html