/*
* 这学期选了一门数据库的选修课,之前没有学过一点数据库,现在临时预习了。只是最基本的知识。
*/
第14章 数据库
14.1 数据库管理系统
-
数据库管理系统
- DBMS,定义、创建、维护数据库的一种工具,由硬件、软件、数据、用户和规程构成。
- 硬件
- 软件
- 数据
- 用户
- 规程
用户
-
最终用户
- 直接从数据库中获取信息的用户,分为两类: “数据管理员(DBA)”、“普通用户” 应用程序
- 数据库中的其他使用者是 应用程序 规程
- 必须被明确定义并由数据库用户遵循的 规程或规则的集合
14.2 体系结构
内层
、概念层
、外层
-
内层
- 与硬件交互、决定了数据存储在存储设备中的实际位置 概念层
-
或称公用层定义数据的逻辑视图,该层定义了
数据模型
、模式图表
外层
- 直接与最终用户或应用程序交互
14.3 数据库模型
14.3.1 层次模型
14.3.2 网络模型
14.3.3 关系模型
14.4 关系模型
关系数据库管理系统(RDBMS)
-
关系
- 二维表
名称
属性 : 列的头,关系的属性总数成为关系的度,概念层中使用属性给每一列赋予一定的意义
元组 : 关系中的行,关系中的总行数成为关系的基数
14.5 关系的操作
九种操作:插入、删除、更新、选择、投影、连接、并、交、差
-
插入
- 插入新的元组 删除
- 删除相应的元组 更新
- 更新元组中的部分属性值 选择
- 一个关系产生一个新关系, 属性不变,元组的子集 投影
- 一个关系产生一个新关系,新关系中的属性是原关系中属性的子集, 元组数量保持不变,两表横连 连接
- 两个关系产生一个新关系, 基于共有的属性把两个关系组合起来, 元组数量保持不变,两表横连 并
- 两个关系属性完全相同,集合并,两表竖连 交
- 两个关系属性完全相同,集合交,两表竖连 差
- 两个关系属性完全相同,集合差,两表竖连
14.6 结构化查询语言
结构化查询语言(SQL),描述性语言
语句
1.插入
insert into RELATION-NAME
values (...)
ex:
insert into COURSES
values ("CIS52", "TCP/IP Protocols", 6)
2.删除
delete from RELATION-NAME
where criteria
ex:
delete from COURSES
where NO = "CIS19"
3.更新
update RELATION-NAME
set attribute1 = value1 attribute2 = value...
where criteria
ex:
update COURSES
set Unit = 6
where No = "CIS51"
4.选择
select *
from RELATION-NAME
where criteria
ex:
select *
from COURSES
where Unit = 5
5.投影
select attribute-list
from RELATION-NAME
ex:
select No, Unit
from COURSES
6.连接
select attribute-list
from RELATION1, RELATION2
where criteria
ex:
select No, Course-Name, Unit, professor
from COURSE, TAUGHT-BY
where COURSE.No = TAUGHT-BY.No;
7.并
select *
from RELATION1
union
select *
from RELATION2
ex:
select *
from CIS15-Roster
union
select *
from CIS52-Roster;
8.交
select *
from RELATION1
intersection
select *
from RELATION2
ex:
select *
from CIS15-Roster
intersection
select *
from CIS52-Roster;
9.差
select *
from RELATION1
minus
select *
from RELATION2
*表示所有属性
ex:
select *
from CIS15-Roster
minus
select *
from CIS52-Roster
10.SQL语句的组合
14.7 其他数据库模型
14.7.1 分布式数据库
分割式的分布式数据库
:医药公司的站点
复制式的分布式数据库
:完全副本