SCAU SQL 第二章

简单属性、多值属性、复合属性

1).简单属性:不能再划分为更小部分的属性。

2).复合属性:可以再划分为更小的部分,也就是能再划分为一些其他属性的属性。

比如说:name属性可被设计为一个包括first_name,middle_name,lase_name的复合属性。

3).单值属性:数据库中,所定义的属性对于一个特定的实体都只有一个单独的值。

比如说:对于某个特定的贷款loan实体而言,loan_number属性只对应一个贷款号码。一个贷款就只对应一个贷款号。loan_number 就是一个单值属性。

4).多值属性:在某些情况下对某个特定实体而言,一个属性可能对应一组值。

关系、关系模式、码

码----能唯一标识实体的属性,码是整个关系的性质,而不是一个个元组的性质;关系中的任意两个元组都不允许同时在码属性上具有相同的值.码指定代表了被建模的事物在现实世界中的约束.

码包括:主码,候选码或超码.

超码是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组.

候选码 超码中可能包含一些无关紧要的属性.如果K是一个超码,那么K的任意超集也是超码,我们通常只对这样的一些超码感兴趣,它们的任意真子集都不能成为超码,这样的最小超码称为候选码. 例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。

主码:是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。主码应该选择那些值从不或极少变化的属性.

数据完整性约束

数据完整性:存储在数据库中的所有数据值均正确的状态。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

数据完整性分为四类:

  1. 实体完整性(实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键,唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人.。)
  2. 域完整性(域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域完整性可以确保不会输入无效的值.。)
  3. 参照完整性(参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性)
  4. 用户定义的完整性。

约束是表级的强制规定,有以下五中:not null,unique,primary key,foreign key,check 。

关系数据库

关系数据库系统是支持关系模型的数据库系统

关系模型是由关系数据结构、关系操作集合和关系完整性约束三部分组成

1.Domain 域
Domain是指一组具有相同数据类型的值的集合

2.Cartesian product 笛卡尔积

3.Relation 关系
例如:一个名为student的表有name,age,class属性,则这个关系表示为
student(name,age,class)

若某关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(candidate key)
若一个关系中有多个候选码,则选其中一个为主码(primary key)
关系模式下所有属性是这个关系模式的候选码,称为全码(all-key)

关系有三种类型:基本关系、查询表、视图表

基本关系的六个性质:
(1)列是同质的,既每一列中的分量为同一类型的数据,来自同一个域。
(2)不同的列可出自同一个域,称其中的每列为一个属性,不同的属性的要给予不同的属性名。
(3)列的顺序无所谓,即列的次序可以任意交换。
(4)任意两个元组不能完全相同。
(5)行的顺序无所谓,即行的次序可以任意交换。
(6)分量必须取原子值,即每一个分量都必须是不可分的数据库。

关系模式

R(U,D,dom,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。
通常简记为:
R(U)或R(A1,A2,…,An)
其中R为关系名,U为属性名集合,A1,A2,…,An为各属性名。

关系操作

常用的关系操作包括查询(query)和插入(insert)、删除(delete)、修改(update)操作两大部分
查询操作又可以分为选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(expect)、交(intersection)、笛卡尔积
其中选择、投影、并、差、笛卡尔积是五种基本操作

关系数据语言的分类

分别为关系代数(relational- algebra)和关系演算(regional calculus)

关系的完整性

关系模型中有三类完整性约束:
实体完整性、参照完整性、用户自定义完整性

实体完整性:若属性A是基本属性的主属性,则A不能为空值
参照完整性:若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值要么为空值,要么等于S中某个元组的主码值。
用户自定义的完整性:用户可以根据实际状况自定义约束条件

关系代数

五个基本操作:
并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:
交(∩)、联接(等值联接)、自然联接(RcrossS)、除法(÷)
注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)
注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

例:
设教学数据库中有3个关系:

学生关系S(SNO,SNAME,AGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩
π SNO,GRADE(σCNO=‘C2’(SC))

(2) 检索学习课程号为C2的学生学号与姓名
π SNO,SNAME(σCNO=‘C2’(ScrossSC))

(3) 检索选修课程名为MATHS的学生学号与姓名

π SNO,SANME(σCNAME=‘MATHS’(ScrossSCcrossC))

http://www.blogjava.net/decode360/archive/2009/04/15/292362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值