数据库系统实验课知识点讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统实验课知识点讲解
——江叶春
1.数据库基本概念
2.几种键的概念
3.数据完整性约束
4.DDL和DML
5.JOIN
6.Group By和聚集函数
7.数据库设计
8.多重性约束
9.ER模型向关系模型的映射
10.规范化
一、数据库基本概念
数据库:长期存储在计算机内、有组织、可共享的大量数据的集合。
数据库管理系统:位于用户与操作系统之间的一层数据管理软件。
数据库系统:计算机引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员构成。
二、几种键的概念
事实上,关系模型不允许表格包含有重复记录。所以,一个表格里字段或者列的值必须是唯一的。唯一性可以通过检查key(关键字)来确定,关键字可以由一个单列或者列的组合构成,这样的列叫做composite key(复合关键字)。
关键字有很多不同的类型:
studentNo (PK)ID
(AK)
name Phone address courseNo(FK)
a) 超关键字(Super Key):又称超键或超码,是能够唯一标识关系中每个元组的一个或一组属性的集合。超关键字能够唯一标识关系中的每个元组,但超关键字中可能包含多余属性,而人们一般对能够唯一标识元组的最小属性集合感兴趣,由此产生了候选关键字的概念。
b) 候选关键字(Candidate Key):又称候选键或候选码,它本身是超关键字但其任何子集都不是超关键字。或者说候选关键字是能够唯一标识关系中每个元组的一个或一组最小属性的集合。一个关系中也可能会有多个候选关键字。
c) 主关键字(Primary Key):又称主键或主码,是被选为唯一标识关系中各元组的候选关键字。
d) 辅关键字(Alternate Key):又称辅键或辅码或备选键,是没有被选为主关键字的候选关键字。
e) 外关键字(Foreign Key):又称外键或外码,设F为关系R中的某个属性或属性组,F可能不是关系R的候选键,但如果F与关系S(关系S与R可以
是同一个关系)的主键PK
s 相对应(F取值与PK
s
取值相一致),则称F是关系R
的外键。
这里列出来的关键字的类型并不是相互排斥的;一个关键字可以同时被归入多个类。从定义上说,每个表格必须至少有一个主关键字。
三、数据完整性约束
(1)实体完整性
实体完整性约束要求基本关系的所有主关键字属性都不能为空,而不是主关键字整体不能为空。例如,对于学生选课关系(学号,课程号,成绩),显然,学号与课程号的组合“学号,课程号”为主键,按照实体完整性的要求,学号和课程号两个属性中的任何一个都不能出现空的现象。
根据定义,主关键字是能唯一标识元组的最小属性集合,这就意味着主关键字的任何子集都不能唯一标识元组。如果允许主关键字的某个属性为空,这就暗示了唯一标识元组并不需要所有主关键字属性,这与主关键字的定义相矛盾。这也说明了关系模型实体完整性的约束是合理的。
(2)参照完整性
如果一个关系中存在某个外关键字,则该外关键字属性的取值应该与它所引用的主关系中的对应属性取值一致,或者为空。
其实我们前面在介绍外关键字概念的时候,已经说明了这个问题。换言之,关系模型的参照完整性约束是通过外关键字来体现的。
(3)用户定义完整性
任何关系数据库系统都应该支持实体完整性和参照完整性,除此之外,不同的数据库系统根据其应用环境和领域的不同,可能还需要一些特殊的约束条件,用户定义完整性也称企业约束,就是为了满足这些特殊约束条件而定义的,它是让用户根据具体应用环境和领域来指定数据所需要满足的附件约束。
用户定义完整性由数据库的用户根据数据库使用环境和领域所指定的附加规则。
例如,学生关系模式Student(学号, 姓名, 身份证号, 年龄, 性别, 学院编号, 入学年份)中,根据应用环境要求,还可能要求学号属性必须为8位数字,或者要求年龄不能超过30岁等等。这些约束条件都是用户根据具体应用环境而附加的规则。关系模型应该向用户提供定义这类完整性约束的机制和方法,并能够按照用户定义的完整性约束条件对数据进行检验。不过,各种具体DBMS 对用户定义完整性的支持程度可能因系统而异,有时需要应用程序和DBMS共同来保证用户定义完整性。
四、DDL和DML
1.DDL(数据定义语言):对结构进行的操作。
比如create,drop,alter等。
2.DML(数据操纵语言):对具体的数据进行的操作。
比如update,delete,insert等。
五、JOIN基本操作
Join操作基本分为4大类:
1.θ连接:在连接条件使用除等于运算符以外的其它比较运算符比较
被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
2.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。不需要同名属性,可以使用using或on子句来指定连接条件。
3.自然连接:同名属性的等值连接,故无须自己添加连接条件,并删除连接表中的重复列。
4.外连接:返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录;right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录。
1)左连接
2)右连接
3)全连接)
Join操作的共性:第一步均为将所有参与操作的表进行了一个笛卡儿积,然后才依据各连接
条件进行记录的筛选
SQL> select * from employees;
NAME
SALARY
DEPARTMENT_ID
Getz 10 3000
Davis 20 1500
King 20 2200
Davis 30 5000
Kochhar 5000 SQL> select * from departments;
DEPARTMENT_NAME