graph TB
%% 定义 SQL 作为顶层节点
I[SQL(应用层)]:::sql-node
%% 外模式
subgraph 外模式[外模式(用户层)]
direction LR
A[视图 1]:::view-node
B[视图 2]:::view-node
end
%% 模式
subgraph 模式 [模式(逻辑层)]
direction LR
C[基本表 1]:::table-node
D[基本表 2]:::table-node
E[基本表 3]:::table-node
F[基本表 4]:::table-node
end
%% 内模式
subgraph 内模式 [内模式(物理层)]
direction LR
G[存储文件 1]:::storage-node
H[存储文件 2]:::storage-node
end
%% 外模式到模式的关系
A <--> D
B <--> E
B <--> F
%% 模式到内模式的关系
C <--> G
D <--> G
E <--> G
F <--> H
%% SQL 到各层次的关系
I <--> A
I <--> B
I <--> C
%% 美化样式定义
classDef sql-node fill:#4CAF50,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold;
classDef view-node fill:#FF9800,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold;
classDef table-node fill:#2196F3,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold;
classDef storage-node fill:#9C27B0,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold;
%% 子图样式定义
classDef subgraphTitle fill:#333,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold,text-align:center;
基本表(Base Table):实际存储数据的表,一个关系对应一个基本表。
存储文件:组织数据库内模式的逻辑结构,对用户透明。
视图(View):从基本表导出的虚表,数据库中只存储视图的定义。
学生-课程数据库
本篇将使用一个「学生-课程」数据库作为示例,包含以下三个基本关系:
学生关系(Student):记录学生信息
学号(Sno)
姓名(Sname)
性别(Ssex)
年龄(Sage)
所在系(Sdept)
201215121
李勇
男
20
CS
201215122
刘晨
女
19
CS
201215123
王敏
女
18
MA
201215125
张立
男
19
IS
课程关系(Course):记录课程信息
课程号(Cno)
课程名(Cname)
先行课(Cpno)
学分(Ccredit)
1
数据库
5
4
2
数学
NULL
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
NULL
2
7
PASCAL 语言
6
4
选修关系(SC):记录学生选课信息
学号(Sno)
课程号(Cno)
成绩(Grade)
201215121
1
92
201215121
2
85
201215121
3
88
201215122
2
90
201215122
3
80
SQL 数据定义
SQL 数据定义功能包括:
模式定义:创建、删除模式(CREATE SCHEMA, DROP SCHEMA)
表定义:创建、删除、修改基本表(CREATE TABLE, DROP TABLE, ALTER TABLE)
视图和索引定义:创建、删除视图和索引(CREATE VIEW, DROP VIEW, CREATE INDEX, DROP INDEX, ALTER INDEX)