(1)逻辑结构
- 二维表 <实体与实体之间的联系用表来表示>
(2)物理结构
- 有的关系数据库管理系统中一个表对应一个一个操作系统文件。
- 有的关系数据库管理系统从OS中申请若干个大的文件,自己划分空间,组织表、索引等存储结构,并进行存储管理。
- 刻画出完整性约束条件
- 是静态的
- 是稳定的
- 域(domain)
一组相同数据类型的值的集合(即二维表中的列)- 笛卡尔积
是域上的一种集合运算- 关系(relation)
(1)候选码(candidate key)
(2)主码(prime key)
- 选择(select)
- 投影(project)
- 并(union)
- 差(except)
- 笛卡尔积
- 连接(join)
- 除(divide)
- 交(intersection)
SQL(Sttuctured Query Language)结构化查询语句,是关系型数据库的标准语句。
1、数据查询(data query)
2、数据操纵(data manipulation)
包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、数据定义(data definition)
能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。
4、数据控制(data control)
主要是对用户的访问权限加以控制,以保证系统的安全性。
1、综合统一。集数据定义语言、数据操纵语言、数据控制语言的功能于一体;综合统一;独立完成数据库生命周期中的全部活动。
2、高度非过程化。提高了数据的独立性。
3、面向集合的操作方式。操作对象是元组的集合。
4、以同一种语法结构提供多种使用方式。能够嵌入到高级语言中。
5、语言简洁,易学易用。
1、数据查询语言(DQL: Data Query Language)
用以从表中获得数据,确定数据怎样在应用程序给出。
常用保留字:SELECT、WHERE、ORDER BY、GROUP BY、HAVING
2、数据操作语言(DML:Data Manipulation Language)
常用保留字:HAVING、 UPDATE、DELETE、INSERT
3、数据控制语言(DCL:Data Control Language)
确定单个用户和用户组对数据库对象的访问。
常用保留字:GRANT、REVOKE(实现权限控制)
4、数据定义语言(DDL:Data Definition Language)
在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
常用保留字:CREATE 、ALTER、 DROP
5、事务控制语言(TCL:Transaction Control Language)
能确保被DML语句影响的表的所有行及时得以更新。
常用保留字:COMMIT(提交)、SAVEPOINT(保存点)、ROLLBACK(回滚)
关系型中关系的完整性主要包括3个方面:实体完整性、参照完整性、用户定义完整性。
从概念上来说,关系数据库中的每个元组应该是可以区分的,是唯一的。即主码(无论是一个主属性组成还是多个主属性共同组成的)不能为空值。
实体完整性用最通俗的话来说就是定义主键,并且主键唯一、不为空。
若要保证设计的关系型数据库具有实体完整性,可如下设计:
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL PRIMARY KEY, /*在 列级 定义主键*/
Sname CHAR(20) NOT NULL
}
/*或者*/
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL ,
Sname CHAR(20) NOT NULL,
PRIMARY KEY(Sno) /*在 表级 定义主键*/
}
2、当主键是多属性组成时,只能使用标记定义主键。
--成绩表
CREATE TABLE m_SC{
Sno CHAR(9) NOT NULL ,
Cno CHAR(9) NOT NULL ,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno) /*在 表级 定义主键*/
}
1、检查主键值是否唯一。
2、检查主键的各个属性是否为空。
从概念上来说,参照的关系中的属性值必须能够在被参照关系找到(与关系相对应的主码保持一致)或者取空值。
参照完整性用通俗的话来说就是定义表的外键约束。
参照完整性的定义:
--学生表
CREATE TABLE m_student{
Sno CHAR(9) NOT NULL PRIMARY KEY, /*在 列级 定义主键*/
Sname CHAR(20) NOT NULL
}
--课程表
CREATE TABLE m_course{
Cno CHAR(9) NOT NULL PRIMARY KEY, /*在 列级 定义主键*/
Cname CHAR(20) NOT NULL
}
--成绩表
CREATE TABLE m_SC{
Sno CHAR(9) NOT NULL ,
Cno CHAR(9) NOT NULL ,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno) /*在 表级 定义主键*/
FOREIGN KEY(Sno) REFERENCES m_student(Sno), /*在 表级 定义外键*/
FOREIGN KEY(Cno) REFERENCES m_course(Cno) /*在 表级 定义外键*/
}
从概念上来说,它反映某一具体应用所涉及的数据必须满足的语义要求。主要是针对某一具体关系数据库的约束条件。
主要类型包括:
- 非空约束(NOT NULL)
- 检查约束(CHECK 短句)
- 主键约束(PRIMATY KEY)
- 外键约束(FOREIGN KEY)
- 唯一约束(UNIQUE)
实体: 现实世界中客观存在并可以被区别的事物。比如“一个学生读者”、“一本书”、等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,就像“读者借阅书籍”,表示读者和书籍之间的动作或者联系。在关系数据库中,一个实体可以看作是“一张表”的事物描述。
属性: 实体所具有的某一特性。由此可见,属性一开始是个逻辑概念,比如说,“学号”是“读者”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。
元组: 在关系数据库中,“表中的一行”就是一个元组。
分量: 元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。
码: 表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,叫候选码,我们从候选码中挑一个能够唯一标识这个的,它就叫主码。
全码: 如果一个主码包含了所有的属性,这个码就是全码。
主属性: 一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性: 与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
外码: 一个属性(或属性组),它不是码,但是它是其它表的主码,这个表在现实世界中与其它的表有一定的联系,那它就是外码。
数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。它主要体现在对数据库进行设计的时候模式之间的转换是很重要的。
以下通过一个简单的例子来描述。(根据现实世界所定义的实体、属性和联系往往在不同的应用场景是不一样的,下面的例子尽管有不全面的地方,但是作为简单理解概念的例子是足够啦!)
E-R图基础概念:
1、实体-联系图(Entity Relationship Diagram)
2、矩形框:表示实体,在框中记入实体名。
3、菱形框:表示联系,在框中记入联系名。
4、椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
5、连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
主要是根据E-R图转换为相应的关系模式(遵循第三范式)
上述E-R图转换为的关系模式如下:
管理员(用户名,密码)
图书(图书IBSN,图书名称,图书类别,图书单价,图书库存)
读者(读者编号,读者姓名,读者性别,读者联系方式,读者专业,注册时间,读者类型)
读者类型(读者类型,借阅最大数量,借阅最大天数)
借阅(借阅编号,借阅时间,借阅数量,归还时间,图书编号,读者编号)
此模式主要是根据上述的关系模式转换为表的形式。
表1-1 学生读者基本信息表
读者编号 | 姓名 | 性别 | 联系方式 | 专业 | 读者类型 | 注册时间 |
---|---|---|---|---|---|---|
20200101 | 白百 | 女 | 18201011129 | 语言类 | 三类 | 2020/09/01 |
20200202 | 赵一 | 男 | 13909890980 | 工商管理 | 二类 | 2020/09/01 |
20200303 | 章萌 | 女 | 15098909890 | 软件工程 | 一类 | 2020/09/01 |
表1-2 图书基本信息表
图书IBSN | 图书名称 | 图书类别 | 图书单价 | 图书库存 |
---|---|---|---|---|
211110001 | 数据结构 | 计算机 | 34.0 | 19 |
211110002 | 哈利波特 | 外国小说 | 89.5 | 10 |
211110003 | 计算机网络原理 | 计算机 | 39.0 | 12 |
表1-3 读者借阅书籍信息表
借阅编号 | 借阅时间 | 借阅数量 | 归还时间 | 读者编号 | 图书编号 |
---|---|---|---|---|---|
000001 | 2020/10/01 | 2 | 2020/11/12 | 20200101 | 211110002 |
000002 | 2021/02/13 | 1 | 2021/03/16 | 20200203 | 211110001 |
000003 | 2021/04/01 | 1 | 20200303 | 211110003 |
表2-1 实体、主键、外键说明表
实体 | 主键 | 外键 | |
---|---|---|---|
读者 | 读者编号 | 读者类型名 | |
读者类型 | 读者类型名 | ||
图书 | 图书IBSN | ||
读者借阅书籍 | 借阅编号 | 读者编号、图书IBSN |
关系型数据库的主要特征
今天就先分享到这叭~~~