第三章关系数据库

合集下载

第3章 关系数据库

第3章 关系数据库

3)用户定义的完整性 ) 由用户自己根据情况, 由用户自己根据情况,对数据库中数据所做的规定称 为用户定义的完整性规则,也称为域完整性规则。 为用户定义的完整性规则,也称为域完整性规则。通 过这些规则来限制数据库中只能接受符合用户定义完 整性约束条件的数据值, 整性约束条件的数据值,从而保证了数据的正确性和 有效性。 有效性。
关系模型的主要特点有: 关系模型的主要特点有: (1)关系中每一分量不可再分,是最基本的数据单位,即不 )关系中每一分量不可再分,是最基本的数据单位, 允许有表中表。 允许有表中表。 (2)每一竖列的分量是同属性的,列数根据需要而定,且各 )每一竖列的分量是同属性的,列数根据需要而定, 列的顺序是任意的。 列的顺序是任意的。 (3)每一横行由一个个体事物的诸多属性构成,且各行的顺 )每一横行由一个个体事物的诸多属性构成, 序是任意的。 序是任意的。 (4)一个关系是一张二维表,不允许有相同的属性名,也不 )一个关系是一张二维表,不允许有相同的属性名, 允许有相同的元组。 允许有相同的元组。
(6)关系模式:对关系的描述,一般表示为:关系名 (属性1,属性2,…,属性n) (7)关键字或码(Key):表中用来唯一确定(标识) 一个元组的某个属性或属性组合。 关键字必须唯一,但它的唯一性不是只对关系的当前元 组构成来确定的。(,)还要考Байду номын сангаас元组构成的将来可能性。 一个关系中,关键字的值不能为空,即关键字的值为空 的元组在关系中是不允许存在的。
3.2.1 传统的集合运算
传统的集合运算,包括并、 传统的集合运算,包括并、差、交、广义笛卡尔积 四种运算。 四种运算。 1、并(Union) 、 ) 关系R与关系 的并记作 关系 与关系S的并记作: 与关系 的并记作: R∪S = { t | t∈R ∨ t∈S } ∪ ∈ ∈ 其结果仍为关系,由属于 或属于 的元组组成。 或属于S的元组组成 其结果仍为关系,由属于R或属于 的元组组成。 2、交( Intersection) 、 ) 关系R与关系 的交记作 关系 与关系S的交记作: 与关系 的交记作: R∩S = { t | t∈R ∧t∈S } ∈ ∈ 其结果关系仍为关系,由既属于 又属于 的元组组成。 又属于S的元组组成 其结果关系仍为关系,由既属于R又属于 的元组组成。

第三章 关系数据库查询语言SQL

第三章 关系数据库查询语言SQL

20112011-2-25
主讲:王颂华
9
3.2 数据定义
3.2.3 索引的建立与删除
1.建立索引 1.建立索引 索引是数据库随机检索的常用手段,它实际上是记 录的关键字与其相应地址的对应表。借助于索引结构,可 以迅速查找到某个属性A 以迅速查找到某个属性A具有指定值的那些元组。对一个 基本表,可以按需要建立若干个索引,以便提供多种存取 路径。 建立索引的语句格式为: CREATE[UNIQUE][CLUSTER]INDEX<索引名 CREATE[UNIQUE][CLUSTER]INDEX<索引名 > ON<表名>(<列名1>[<次序>],[<列名2>[<次序 ON<表名>(<列名1>[<次序>],[<列名2>[<次序 >]]… >]]…);
3.2 数据定义
2)主关键字的定义 一个关系可能有多个候选关键字,但在定义基本表 时只能定义一个主关键字。一个关系的主关键字由一个或 几个属性构成,在CREATE TABLE中声明主关键字有两 几个属性构成,在CREATE TABLE中声明主关键字有两 种方法: (1)在列出关系模式的属性时,在属性及其类型后加 上保留字PRIMARY KEY,表示该属性是主关键字。 上保留字PRIMARY KEY,表示该属性是主关键字。 (2)在列出关系模式的所有属性后,再附加一个声明: PRIMARY KEY(<属性1>[,<属性2>,…]) KEY(<属性1 ,<属性2>,… 如果关键字由多个属性构成,则必须使用第二种方 法。
20112011-2-25 主讲:王颂华 12
3.3 数据查询
3.3.1 单表查询

第三章 关系数据库标准语言SQL语言

第三章 关系数据库标准语言SQL语言

第三章关系数据库标准语言SQL语言一、选择题1. 在SQL语言中授权的操作是通过________________语句实现的。

C A.CREATEB.REVOKEC.GRANTD.INSERT2. 假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。

要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系____。

DA.S B.SC,C C.S,SC D.S,C,SC3. 在 MS SQL Server中建立了表 Student(no,name,sex,birthday),no为表的主码,其他属性的默认值为 null。

表中信息如图所示:能够正确执行的插入操作是________。

A No Name Sex Birthday 101 张丽丽女 1967/05/07 102 李芳女 1970/04/14103 王朋男 1982/10/27 A.INSERT INTO student (no,sex) VALUES(102,′男′) B.INSERT INTO student (name,sex) VALUES(′王中′,′男′)D.INSERT INTO student VALUES(106,′王中′,′男′,′1984/03/08′) C.INSERT INTO stude nt VALUES(102,′男′,′王中′,′1984/03/08′) 4. SQL语言中,删除一个表的命令是________。

B A. DELETE B. DROP C. CLEAR D. REMORE 5. 为数据表创建索引的目的是________ AA.提高查询的检索性能B.创建唯一索引C.创建主键D.归类6. 在SQL语言中,条件“RETWEEN 20 AND 30”表示年龄在20到30之间,且________A. 包括20岁和30岁B. 不包括20岁和30岁C. 包括20岁不包括30岁D. 不包括20岁包括30岁7. 为了使索引键的值在基本表中唯一,在建立索引语句中应使用保留字________ AA. UNIQUEB. COUNTC. DISDINCTD. UNION 8. 下面关于SQL语言的说法中,哪一种说法是错误的? ________ AA. 一个SQL数据库就是一个基本表B. SQL语言支持数据库的三级模式结构C. 一个基本表可以跨多个存储文件存放,一个存储文件可以存放一个或多个基本表D. SQL的一个表可以是一个基本表,也可以是一个视图二、简答题1. 什么是基本表?什么是视图?两者的区别和联系是什么?【解答】基本表是本身独立存在的表,在SQL中一个关系就对应一个表。

sql 课件 第3章 关系数据库标准语言SQL

sql 课件 第3章 关系数据库标准语言SQL

山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。

第3章:关系数据库标准语言SQL

第3章:关系数据库标准语言SQL

例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,

-数据库原理及应用第二版-第3章关系数据库

-数据库原理及应用第二版-第3章关系数据库
R.A 1 R.B 1 R.C 1 S.A 1 S.B 1 S.C 1
自然连接是连接中等值连接的特例,是一种 去掉重复属性的等值连接。连接的条件是两 个关系的同名属性。 记作:R*S 班级(班号,班名,班导师) 学生(学号,姓名,性别,班号) 班级*学生

两个重要的连接: 等值连接 θ为“=”,是从关系R和S的广义笛卡尔积中 选取A,B属性值相等的那些元祖。 自然连接 是一种特殊的等值连接,它要求两个关系 中进行比较的分量必须是相同的属性组,并且 在结果中把重复的属性列去掉。
A和B:分别为R和S上度数相等且可比的属性组。前

连接按连接条件分为:等值连接,大于连接和小于连接。 等值连接:就是指连接条件为等号。 大于连接就是指连接条件为>号 小于连接就是指连接条件为<号。 上述三种不同连接都称为连接,并不去掉重复属性和重复 元组。

R.A=S.A 班级(班号,班名,班导师) 学生(学号,姓名,性别,班号) R和S关系的连接,连接条件是R.A=S.A。运算结果是:
例1:学生实体和专业实体可以用下面的关系表示。
学生(学号,姓名,性别,专业号,出生日期) 专业(专业号,专业名)
例2:学生、课程以及学生与课程之间的选课关系可以用如 下三个关系表示:
学生(学号,姓名,性别,专业号,出生日期)
课程(课程号,课程名,学分) 选课(学号,课程号,成绩)
3.4.3 用户定义的完整性
2、属性 图3-1的学生关系中有学号、姓名、年龄、性别和所在系五 个属性,是一个五元关系。
二维表中的列称为属性(或叫字段),每个属性都有一个名字,称为属性名。 二维表中对应某一列的值称为属性值;二维表中列的个数称为关系的元数。

第3章 关系数据库标准语言SQL_第4版(1-3)

第3章 关系数据库标准语言SQL_第4版(1-3)
1 6 7 6
学分 Ccredit 4 2 4 3 4 2 4
SC表
学号 Sno
200215121 200215121 200215121 200215122 200215122
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80
§3.3 数据定义
SQL的数据定义功能: 模式定义、表定义、视图 和索引的定义
被参照建立一个“学生选课”表SC CREATE TABLE SC Cno CHAR(4), Grade SMALLINT, 列级完整性约束条件, Sno是外码,被参照表是 Student
(Sno CHAR(9) REFERENCES Student(Sno) , 主码由两个属性构 成,必须作为表级 完整性进行定义

用户数据库投入运行后,可根据需要随时逐步修 改模式,不影响数据的运行。 数据操作符统一
2.高度非过程化

非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径

SQL只要提出“做什么”,无须了解存取路径。 存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式

SQL
数据流(Data) 元数据流(Meta Data) 对应于视图和部 分基本表
视图1
视图2
外模式
对应于基本表
基本表1 基本表2 基本表3 基本表4
数据词典
(元数据)
模式
对应于存储 文件
存储文件1 存储文件2 内模式
SQL的基本概念(续)

基本表(BASE TABLE):
是独立存在的表, 一个关系对应一个基本表,
嵌入式语言:嵌入高级语言如C,COBOL, FORTRAN,PB等

DBS第三章_2

DBS第三章_2

[ORDER BY <列名>[ASC DESC] ] 排序子句
第三章
关系数据库语言SQL
3.3
SQL的数据查询
(2)执行过程 P88
④SELECT ①FROM ②WHERE
读取FROM子句中基表、视图的数据,执行‘×‟
选取满足WHERE子句中所给条件表达式的元组 按GROUP BY子句中指定列的值将元组分组
第三章
关系数据库语言SQL
3.3
SQL的数据查询
(3) SELECT子句中目标表的列名或列表达式
[ ALL | DISTINCT] 列名或列表达式序列
* : 所有列
例: SELECT SNAME, O, GRADE →聚集函数(列名) ,不允许对聚集运算复合使用 常数:SELECT sno, „birth_year:‟, year(age) FROM STUDENT,COURSE,SC 例:查询所有女学生的身高(以厘米表示) 例1:求所有学生的平均身高 改名,AS可省 →列名 AS 别名 FROM … WHERE student 例1: SELECT SELECT SNAME , FROM STUDET; sno AS 学号, sname 100*HEIGHT SELECT AVG(HEIGHT) AS 姓名
③GROUP
BY 选满足HAVING子句中组条件表达式的那些组
按SELECT子句中所给的列或列表达式求值输出
③HAVING ⑤ORDER
BY 按ORDER BY子句对输出的目标表进行排序
第三章 关系数据库语言SQL 3.3 SQL的数据查询
三、有关限定 (1) 通常每条语句以 ‘;’ 结束 (2) 表达式的组成及元素
Π A1,…,An (σF(R1 …Rn))
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如: 学生(学号,姓名,性别,专业号,年龄)
7
(3)参照完整性
例1:学生(学号,姓名,性别,专业号,年龄) 参照关系
专业(专业号,专业名) 被参照关系
例2:学生(学号,姓名,性别,专业号,年龄) 被参照关系
课程(课程号,课程名,学分) 被参照关系
选修(学号,课程号,成绩) 参照关系
例3:学生2(学号,姓名,性别,专业号,年龄,班长)
例如:有如下两个域:
人(person)=张清玫,刘逸,李勇,刘晨,王名
3、完整性约束
关系的完整性,即关系中的数据及具有关联
关系的数据间必须遵循的制约和依存关系,以保
证数据的正确性、有效性和相容性。
关系的完整性主要包括域完整性、实体完整 性和参照完整性三种。
(1)域完整性
又称“用户自定义的完整性”,是针对某一
具体关系数据库的约束条件,它反映某一具体应 用所涉及的数据必满足的语义要求。比如对数
定或属性值间的相互关联)。关系模式应当刻画出 这些完整性约束条件。
15
定义4:关系的描述称为关系模式(relation schema)。它可以形式化地表示为R(U,D,DOM,F)其中 R为关系名,U为组成该关系的属性名集合,D为属性 组U中属性所来自的域,DOM为属性向域的映象集合, F为属性间数据的依赖关系集合。
关系模式是对关系的描述。
一个关系需要描述哪些方面呢?
关系模式必须指出这个元组集合的结构,即它由 哪些属性构成,这些属性来自哪些域,以及属性与 域之间的映象关系。
现实世界随着时间在不断地变化,因而在不同的 时刻,关系模式中的关系也会有所变化。但是,现 实世界的许多已有事实限定了关系模式所有可能的 关系必须满足一定的完整性约束条件(属性值的限
2、关系操作
关系操作采用集合操作方式,即操作的对象 和结果都是集合。这种操作方式也称一次一集合
(set-at-a-time)的方式。相反地,非关系数据 模型的数据操作方式则为一次一记录(recordat-a-time)的方式。
关系模型中常用的关系操作包括:选择、投 影、连接、除、并、交、差等查询操作和增、删、
第三章 关 系 数 据 库
数据库原理与应用
1
教学内容
关系数据库目前是各类数据库中最重要、最 流行的数据库。20世纪80年代以来,计算机厂商 推出的数据库管理系统几乎都是关系型数据库, 非关系系统的产品也大都加上了关系接口。
一 关系数据库概述 二 关系数据结构
三 关系代数
四 关系演算
2
一 关系数据库概述
被参照关系
参照关系
定义:设F是关系R的一个或一组属性,但不是关
系R的码(键),如果F与关系S的主码(主键)相对 应,则称F是关系R的外码(外键),并称关系R为参
照关系,关系S为被参照关系。关系R和S不一定是不
同的关系。
8
参照完整性规则:若属性(或属性组)F是 基本关系R的外码,它与基本关系S的主码相对 应,则对于R中每个元组在F上的值必须为:
关系数据库系统是支持关系模型的数据库系
统。关系模型由关系数据结构、关系操作集合和 完整性约束三部分组成。
1、关系数据结构
关系模型的数据结构非常单一,在用户看 来,关系模型中数据的逻辑结构是一张二维表。 但关系模型的这种简单的数据结构能够表达丰富 的语义,描述出现实世界的实体以及实体间的各 种联系。
3
12
例如 设有值域D1(姓名)=[王洪,张江,吴南], D2(性别)=[男,女],D3(年龄)=[28,30], 由这三个值域构成的笛卡尔积D为:
王洪 张江 吴南
13
新关系的势为: M = 3×2×2 = 12 即D有12个元组,从其中取出任意一个子集D’ 就构成了一个关系R:
14
2、关系模式
1、关系
定义1:域(domain)是一组具有相同数据类 型的值的集合。
例如:整数,大于0小于100的整数,实数,长 度小于25字节的字符串集合。
10
定义2:笛卡尔积(cartesian product)给定一组 域D1 ,D2 ,…,Dn , 这些域可以完全不同,也可以部分 或全部相同。 D1 ,D2 ,…,Dn 的笛卡尔积为:
D1 ×D2 ×…×Dn={(d1,d2,…dn)| di∈ Dj,i=1,2, …,n} 其中每一个元素(d1,d2,…dn)叫做一个n元组(ntuple),或简称为元组(tuple)。元素中的每一个 值di叫做一个分量(component)。
11
定义3:关系 D1 ×D2 ×…×Dn 的子集叫作在域 D1 ,D2 ,…,Dn 上的关系,用R(D1 ,D2 ,…,Dn )表示。R表 示关系的名字,n是关系的目或度(degree) 。关系中 的每个元素是关系中的元组,通常用t表示。关系 是笛卡尔积的子集,也是一个二维表,表的每行对 应一个元组,表的每列对应一个域。由于域可以相 同,为了加以区分,必须对每列起一个名字,称为 属性(attribute)。
改操作两大部分。
4
用对关系的运算来表 达查询要求的方式
关系操作
代数方式: 关系代数
SQL
逻辑方式: 关系演算
用谓词来表达查 询要求的方式
将关系看成是元组的集合, 运算从行的角度进行
传统的集合运算
运算涉及行和列
专门的关系运算
谓词变元的基本 对象是元组变量
元组关系演算
域关系演算
谓词变元的基本 对象是域变量 5
或者取空值; 或者等于S中某个元组的主码值;
参照完整性是对关系数据库中建立关联关系 的数据表间数据参照引用的约束,也就是对外键 的约束。准确地说,参照完整性是指关系中的外 键必须是另一个关系的主键有效值,或者是NULL。
9
二 关系数据结构
在关系模型中,无论是实体还是实体之间的联 系均由单一的结构类型即关系(二维表)来表示。 关系是建立在集合代数的基础上的,下面从集合 论角度给出关系数据结构的形式化定义。
据表中字段属性的约束,它包括字段的值域、字 段的类型及字段的有效规则等约束,它是由确定 关系结构时所定义的字段的属性决定的。
6
(2)实体完整性 实体完整性规则:若属性A是基本关系R
的主属性,则属性A不能取空值。 实体完整性是对关系中的记录唯一性,
也就是主键的约束。准确地说,实体完整性 是指关系中的主属性值不能为Null且不能有 相同值。
相关文档
最新文档