第一章 数据库系统概述和关系模型
重点和难点
- 重点:数据库和关系模型的基本概念,ER模型、关系数据理论
- 难点:数据库系统的结构
一、数据库基本概念
-
数据库 (Database, DB)
- 长期存储在计算机内、有组织、可共享的数据集合。
- 例子:学生信息数据库,包含学号、姓名、性别等信息。
-
数据库管理系统 (Database Management System, DBMS)
- 管理数据库的软件,提供数据定义、数据操纵、数据控制等功能。
- 例子:MySQL, PostgreSQL, Oracle。
- 主要功能:
- 数据定义功能:由数据定义语言 (Data Definition Language, DDL) 定义数据库中的数据对象。
- 数据组织、存储和管理:分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
- 数据操纵功能:由数据操纵语言 (Data Manipulation Language, DML) 实现对数据库的查询、插入、删除和修改。
- 数据控制功能:由数据控制语言 (Data Control Language, DCL) 实现数据保护和事务管理等功能。
-
数据库系统 (Database System, DBS)
-
包含数据库、DBMS、应用程序和数据库管理员 (DBA)。
-
二、数据模型
-
数据模型:现实世界数据特征的抽象。主要包括三个要素:
- 数据结构:(静态)描述数据库组成对象及其联系。
- 数据操纵:(动态)描述对数据库中各种对象的操作,如查询、插入、删除、修改。
- 数据完整性约束:(规则)描述数据的约束规则,确保数据的正确性和一致性。
-
分类(根据模型应用的不同目的):
-
概念模型:按用户的观点对数据和信息建模,主要用于数据库设计。
联系:一对一联系(1:1) 一对多联系(1:N) 多对多联系(M:N)
E-R图:实体用矩形表示,属性用椭圆形表示,联系用菱形表示,连接线表示实体与属性、实体与联系之间的关系
-
逻辑模型: 它按计算机系统的观点对数据建模,用于DBMS实现。
-
层次模型:以树型结构表示数据。只能一对多 不能多对多
-
网状模型:以网型结构表示数据。
-
关系模型:以关系(二维表格形式)表示数据,是目前最常用的数据模型。
-
关系:一张表。
-
关系模式:对关系结构的描述。 关系名(属性1,属性2, …,属性n )
e.g. 学生(学号,姓名,年龄,性别,系,年级)
数据操作是集合操作, 操作对象和操作结果都是关系,即若干元组的集合。
-
-
-
物理模型: 是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。它的具体实现是DBMS的任务。
-
三、数据库系统的结构
-
三级模式结构
外模式 ( 子模式、用户模式 ):用户视图。
描述用户视图,反映用户对数据的需求。
数据库用户( 包括应用程序员和最终用户) 使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图, 是与某一应用有关的数据的逻辑表示
安全性:每个用户只能看见和访问所对应的外模式中的数据
模式与外模式的关系:一对多,反映了不同的用户的应用需求、看待数据的方式、 对数据保密的要求
介于模式与应用之间
模式 ( 逻辑模式 ):数据库的逻辑结构。
数据库中全体数据的逻辑结构和特征(型)的描述
所有用户的公共数据视图, 综合了所有用户的需求
一个数据库只有一个模式
中间层 与数据的物理存储细节和硬件环境无关
内模式(存储模式):数据的物理存储方式。
是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式
一个数据库只有一个内模式
外模式/模式映象 :定义外模式与模式之间的对应关系 ,保证数据的逻辑独立性
模式/内模式映象:定义了数据全局逻辑结构与存储结构之间的对应关系,保证数据的物理独立性
四、数据库的发展历史及分类
-
发展历史:
- 人工管理阶段 (20世纪50年代中期前):
- 数据不保存。
- 应用程序管理数据。
- 数据不共享,独立性差。
- 文件系统阶段 (20世纪50年代后至60年代中期):
- 数据可以长期保存。
- 文件系统管理数据。
- 数据共享性差,冗余度大。
- 数据独立性差。
- 数据库系统阶段 (60年代末至今):
- 数据结构化。
- 数据共享性高,冗余度低。
- 数据独立性高。
- 数据由数据库管理系统 (DBMS) 统一管理和控制。
- 人工管理阶段 (20世纪50年代中期前):
-
分类:
- 按数据模型分类:
- 层次数据库、网状数据库、关系数据库(基于关系模型构建的数据库)、面向对象数据库、对象关系数据库。
- 按使用场景分类:
- 事务型数据库、分析型数据库。
- 按分布方式分类:
- 集中式数据库、分布式数据库、客户/服务器 (Client/Server) 结构、浏览器/应用服务器/数据库服务器多层结构。
- 按数据模型分类:
《数据库原理》课程笔记: