DB-01 绪论
DB-01 绪论
一、数据库系统的基本概念
学习数据库系统首先要理清四个容易混淆的概念:数据、数据库、数据库管理系统和数据库系统。
数据是数据库中存储的基本对象。数据不仅仅是数字,文字、图形、图像、音频、视频等都是数据的不同表现形式。数据的含义称为"语义",数据本身需要结合语义才有意义。例如,数字"35"本身没有意义,但如果知道它的语义是"某个学生的年龄",它就变成了有价值的信息。
数据库是长期存储在计算机内、有组织、可共享的大量数据集合。数据库具有三个特征:永久存储(数据不会因为程序结束而消失)、有组织(数据按照一定的结构存放)、可共享(多个用户可以同时访问同一份数据)。这与文件系统中的数据文件有本质区别。
数据库管理系统是位于用户与操作系统之间的数据管理软件。DBMS的核心功能包括数据定义(提供DDL语言让用户定义数据结构)、数据操纵(提供DML语言让用户增删改查数据)、数据组织(决定数据如何存储在磁盘上)、事务管理(保证并发访问的正确性和故障恢复能力)等。
数据库系统是一个更大的概念,它包含了数据库、DBMS、应用程序、数据库管理员和用户。当我们在说"我们使用了Oracle数据库"时,通常指的是数据库系统。
二、数据管理技术的发展
数据管理经历了三个重要的阶段:
人工管理阶段(20世纪50年代以前):计算机主要用于科学计算,没有专门的软件管理数据。程序员不仅要编写程序逻辑,还要自己管理数据的存储位置和格式。一组数据只对应一个程序,数据不能共享。
文件系统阶段(20世纪50-60年代):出现了磁带、磁盘等存储设备,也有了专门的文件管理系统。程序通过文件系统来读写数据,但数据文件之间缺乏联系,数据冗余度高,且数据独立性差。
数据库系统阶段(20世纪60年代末至今):数据库技术的发展解决了文件系统的种种弊端。在这个阶段,数据实现了结构化存储,不同应用程序可以共享同一份数据,数据的逻辑结构和物理存储相互独立,DBMS提供了并发控制、安全控制、完整性检查等高级功能。
数据库系统阶段的核心特点可以概括为"三高一低":高结构化(数据有统一的组织方式)、高共享低冗余(同一份数据可以被多个应用使用,重复存储减少)、高数据独立性(应用程序不依赖数据的物理存储方式)。
三、数据独立性
数据独立性是数据库系统区别于文件系统的重要特征。它分为两个层面。
物理独立性是指,当数据的物理存储结构改变时(例如更换了硬盘、改变了文件的存放位置、调整了存储块的大小),应用程序不需要修改。这是因为DBMS的"模式/内模式映象"负责将逻辑结构映射到物理存储,只要修改这个映射关系,就能保证模式层不变,从而应用程序无需变化。
逻辑独立性是指,当数据库的逻辑结构改变时(例如增加了一个新字段、修改了某个表的结构),应用程序不需要修改。这是因为"外模式/模式映象"机制将用户视图与全局逻辑结构分开。DBA只需要修改外模式与模式之间的映射,就能保证用户程序看到的仍然是原来的结构。
从实现的角度来看,数据独立性是通过数据库系统的三级模式(外模式、模式、内模式)和两级映像(外模式/模式映像、模式/内模式映像)来实现的。
四、数据模型
数据模型是对现实世界数据特征的抽象。它通常由三部分组成:数据结构(描述数据的类型和联系)、数据操作(允许执行的操作类型)和完整性约束(数据必须满足的条件)。
按照抽象层次的不同,数据模型分为:
- 概念模型(如E-R模型):按用户的视角来建模,独立于具体的DBMS
- 逻辑模型(如关系模型、层次模型、网状模型):按计算机的视角来建模,是DBMS支持的数据组织方式
- 物理模型:描述数据在存储介质上的组织方式
当前最主流的逻辑模型是关系模型,它将数据组织为一张张二维表。
五、E-R模型基础
E-R模型(实体-联系模型)是概念设计阶段最常用的工具。它的三个基本元素是:
实体型用矩形表示,如"学生"、"课程"。实体是客观存在并可相互区分的事物。
属性用椭圆形表示,描述实体的特征。如学生的"学号"、"姓名"、"年龄"等。
联系用菱形表示,描述实体之间的关联。联系有三种类型:一对一(1:1)、一对多(1:n)和多对多(m:n)。例如,一个班级有一名班主任(1:1),一个班级有多名学生(1:n),一门课程有多名学生选修、一个学生选修多门课程(m:n)。
六、典型例题
例题1:判断对错:数据库管理系统的核心功能是数据查询。
错误。数据查询只是数据操纵功能的一部分。DBMS的核心功能包括数据定义、数据组织存储、数据操纵(含查询)、运行管理和数据库维护五大方面,缺一不可。
例题2:企业的数据库进行了两项操作:①将数据从机械硬盘迁移到SSD;②为核心表增加了两个新字段。两项操作均未影响前端业务程序运行。请分析这两个现象对应数据库的什么特性。
解答:
① 硬盘更换属于物理存储的改变——对应物理独立性。DBMS通过修改模式/内模式映像来保证模式层不变,应用程序不受影响。
② 增加字段属于表结构的改变(逻辑结构变化)——对应逻辑独立性。DBMS通过修改外模式/模式映像来保证用户视图不变,应用程序无须修改。