软件设计师培训.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
LOGO 第 6 章 数据库规范化设计 孙焘. 重点: 三个范式的基本概念 1 概念模型 2 物理模型 3 多 framePowerDesigner 工具的使用页面设计 4.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
数据库系统概论 华中科技大学能源与动力工程学院
第2章 数据模型 本章学习要求: 1. 层次数据模型、网状数据模型 了解层次及网状数据模型的基本概念和结构。 2. 关系数据模型
第2讲 Transact-SQL语言.
第8章 数据库技术基础 数据库可以直观地理解为存放数据的仓库,只 不过这个仓库是在计算机的大容量存储器上。
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
Chap 11 SQL基本查詢指令.
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第3章 SQL语言初步 2017/3/14.
Access数据库程序设计 总复习.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第3章 关系数据库的基本理论 冯万利.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
Principles and Applications of the Database
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
文科计算机小公共课规划教材 Access 程序设计.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
计算机应用基础 上海大学计算中心.
An Introduction to Database System
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第4章 数据库技术及应用 软件开发技术基础 计算机教学实验中心 2006.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第六章 學習SQL語言.
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
实验二 交互式SQL 邓云.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
第 2 章 規劃關聯式資料庫.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
資料庫簡介 郭士煒 助教.
第九章 進階的查詢技巧.
第五章 关系数据理论 关系模型有严格的数学理论基础,也是目前应用最广泛的数据模型,关系规范化是指导数据库设计的重要理论。一个好的关系数据库是应该既可以供人们方便地获取信息,而又不产生过多的不必要的重复存储问题。可以说,规范化理论是数据模型优化的理论基础,对其他数据库的逻辑设计同样具有理论上的意义。 2018年12月6日7时18分.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
MySQL 結構化查詢語言 MySQL.
作业3-点评.
An Introduction to Database System An Introduction to Database System
实验二讲评 … 张榆….
数据库技术.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
查询与视图 蔡海洋.
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第3章 关系数据库 内容提要 关系模型的数据结构 关系模型的常用术语 关系数据库的完整性概念 数据库的关系运算 函数依赖的定义
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
1.4数据库管理系统 数据库管理系统是数据库系统的核心,是为数据库的建立,维护,使用而建立的系统软件,建立在操作系统基础之上,位于操作系统与用户之间的数据管理软件,负责对数据库进行统一管理与控制.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
Presentation transcript:

软件设计师培训

历年考试对本章内容的考查情况 本章的重点程度:★★★★ 考次 2004 2005 2006 2007 2008 2009 5月 11月 分值 22 21 比重 4% 13.3% 14.7% 14% 本章的重点程度:★★★★

2.数据库技术基础知识 大纲要求: 数据库管理系统的功能和特征 数据库体系结构(概念模式、外模式、内模式) 数据模型,ER图,第一范式、第二范式、第三范式 数据操作(集合运算和关系运算) 数据库语言(SQL) 数据库的控制功能(并发控制、恢复、安全性、完整性) 数据仓库和分布式数据库基础知识

2.1 数据库系统的基本概念 DB、DBMS和DBS的定义 DB (数据库) 是长期存储在计算机内、有组织的、统一管 理的相关数据的集合。 系统。位于用户与操作系统之间的一层管理软件。 DBS(数据库管理系统)在计算机系统中引入数据库后的 系统。是数据库、硬件、软件、数据库管理员及用户的集 合。

DBMS提供数据定义语言(DDL)定义数据库的三级结构 数据库管理系统的功能 数据库的定义功能 DBMS提供数据定义语言(DDL)定义数据库的三级结构 两级映象,定义数据的完整性、安全控制约束。 数据库的操作 DBMS提供数据操作语言(DML)实现对数据库中数据的操 作。基本数据操作有:检索(查询)、和更新(插入、删除、 修改)。

数据库的保护功能 DBMS对数据的保护主要通过四个方面实现,因而 DBMS中包括四个子系统。 数据库恢复 数据库的并发控制 数据库的完整性控制 数据库的安全性控制

DBMS的存储管理子系统提供了数据库中数据和应用程 数据库存储管理 DBMS的存储管理子系统提供了数据库中数据和应用程 序的一个界面,DBMS存储管理子系统的职责是把各种DML 语句转换成底层的与磁盘中数据打交道的操作系统的文件 系统命令,起到数据的存储、检索和更新的作用。

5.数据库的维护功能 数据装载程序 备份程序 文件重组织程序 性能监控程序 6. 数据字典(DD) 数据库系统中存放三级结构定义的数据库称为数据字典。对数据库的操作都要通过访问DD才能实现。DD中还存放数据库运行的统计信息,例如记录个数、访问次数等。

【软件设计师考试2007年11月上午试题51】 在数据库系统中,数据的完整性约束的建立需要 通过数据库管理系统提供的(51) 语言来实现。 (51)A. 数据定义 B. 数据操作 C. 数据查询 D. 数据控制 A

2.2 数据库系统的体系结构—三级结构两级映象 三级结构:外模式、概念模式、内模式 两级映象:外模式/模式映象、模式/内模式映象

三级结构: 外模式:单个用户使用到的那部分数据的描述。 概念模式:是用户定义的数据库中全部数据逻辑结构的描述。 内模式:是数据库在物理存储方面的描述,接近于物理存储设备,涉及到实际数据存储的结构。

两级映象 模式/内模式映象:存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。 外模式/模式映象:存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。

两级数据独立性 数据独立性是指应用程序和数据库的数据结构之间相互 独立,不受影响。 数据独立性分成物理数据独立性和逻辑数据独立性两个 级别。 物理数据独立性:数据的内模式修改,模式/内模式也 要进行相应的修改,但概念模式尽可能保持不变。 逻辑数据独立性:数据的概念模式修改,外模式/模式 也要进行相应的修改,但外模式尽可能保持不变。

数据模型:表示实体类型及实体间联系的模型. 根据模型应用的不同目的可以将模型化分为概念 数据模型和结构数据模型 按用户的观点对 数据和信息建模的 2.3 数据模型 数据模型:表示实体类型及实体间联系的模型. 根据模型应用的不同目的可以将模型化分为概念 数据模型和结构数据模型 概念模型 — ER模型(实体联系模型) 结构数据模型 层次模型、网状模型、关系模型 按计算机的观点对 数据建模的,直接 面向数据库的结构

概念模型 结构数据模型 现实世界 信息世界 机器世界

概念模型— ER模型(实体联系模型) 实体间的联系:实体集内部以及实体集的联 系。包括一对一的联系、一对多的联系、多对 多的联系。 描述实体间联系的模型称为实体联系模型 简称ER模型。

学生 课程 选修 学号 姓名 性别 课程号 课程名 学分 年龄 m n

1 n n 1 1 1 n n n 1 1 n 1 m n n

数据结构模型 数据库领域中常用的数据结构模型: 层次模型 网状模型 关系模型

【软件设计师考试2009年5月上午试题51】 采用二维表格结构表达实体类型及实体间联系的数据模 型是 (51) 。 (51)A. 层次模型    B. 网状模型 C. 关系模型                         D. 面向对象模型

特点: 层次模型: 用树型结构表示实体类型及实体间联系的数据模型。 1.有且只有一个结点无父结点; 2.其它结点有且只有一个父结点; R1 R2 R3 R4 R5 R6 R7 特点: 1.有且只有一个结点无父结点; 2.其它结点有且只有一个父结点; 3.适用于一对多的实体联系。

层次模型的实例 系编号 办公地点 系名 系 教研室编号 教研室 学 号 成绩 姓名 学生 研究方向 职工号 教师

特点: 网状模型: 用有向图表示实体类型及实体间联系的数据模型. 1.任何一个结点可以有一个或一个以 上的父结点; 2.任何一个结点可以没有父结点; 3.适用于多对多的实体联系。 R1 R2 R3 R4

网状模型的实例 学号 姓名 系别 学生 课程 课程号 课程名 学分 选课

用二维表格结构表达实体间的联系的数据模型 关系模型: 用二维表格结构表达实体间的联系的数据模型 学号 姓名 性别 出生日期 籍贯 所在系 相片 2007842501 张三 男 1985.9.4 山西 信息工程 1.jpg 2007842502 李四 女 1984.11.26 江苏 财务管理 2.jpg 2007842503 王五 1985.4.20 河北 电子商务 3.jpg ……

关系:二维的数据表,它描述了实体之间的联系。 元组(实体):数据表中的每一行表示一个实体。 属性(字段):数据表中的每一列。 关系模型中的基本术语: 关系:二维的数据表,它描述了实体之间的联系。 元组(实体):数据表中的每一行表示一个实体。 属性(字段):数据表中的每一列。 域:属性的取值范围。 关系模式:对关系的描述称为关系模式。 关系名(属性名1,属性名2,……,属性名n) 例:学生(学号,姓名,性别,出生日期,籍贯,所在系)

超键(超码):在关系模式中,能唯一标识元组的属性集。这 个属性集可能含有多余的属性。 候选键(候选码):能唯一标识元组,且又不含有多余的属性 一个属性集,即超键中删除多余属性剩下的属性集。 主键(主码):从候选键中选择一个作为关系模式中用户使 用的候选键称为主键。 例如:在关系模式(工号,姓名,年龄,性别,工资) (工号,姓名)是关系的一个超键; (工号)是候选键; (工号)是主键。

主属性:包含在任何候选键中的属性称为主属性。不包含 在任何候选键中的属性称为非主属性。 外键(外码):当关系R中的某个属性(或属性组)虽然不 是该关系的码,但却是另一个关系S的码,称该属性(或属 性组)为R关系的外键。 全键(全码):关系模型中所有属性都是这个关系的关键字 例:R(教师,课程,学生)

系(系号,系名,系主任) 例2:选课(学号,课程号,成绩) 学生(学号, 姓名, 性别) 课程(课程号,课程名,学分) 例1:学生(学号,姓名,性别,年龄,系号) 系(系号,系名,系主任) 例2:选课(学号,课程号,成绩) 学生(学号, 姓名, 性别) 课程(课程号,课程名,学分) 外键 外键

【软件设计师考试2004年5月上午试题17、18】 D D 已知关系R如下表所示,关系R的主属性为(17) ,候 选关键字分别为 (18) 。 (17) A.ABC   B.ABD    C.ACD     D.ABCD (18) A.ABC   B.AB 、AD C.AC、AD和CD  D.AB、AD、BD的CD D D

A D C 【软件设计师考试2004年11月上午试题42-44】 假定每一车次具有唯一的始发站和终点站。如果实体 “列车时刻表”属性为车次、始发站、发车时间、终点站、 到达时间,该实体的主键是 (42) ;如果实体“列车运行 表”属性为车次、日期、发车时间、到达时间,该实体的主 键是(43) 。通常情况下,上述“列车时刻表”和“列车 运行表”两实体间 (44) 联系。 (42)A.车次  B.始发站  C.发车时间  D.车次,始发站 (43)A.车次  B.始发站  C.发车时间  D.车次,日期 (44)A.不存在   B.存在一对一   C.存在一对多      D.存在多对多 A D C

关系模型的完整性约束(数据完整性) 数据完整性是用来确保数据库中数据的正确性和可靠性。 数据完整性包括: 实体完整性:主键的取值必须唯一,并且不能为空。 域完整性:保证数据的取值在有效的范围内。 参照完整性:参照完整性是通过主键和外键来保证相 关联的表间数据保持一致,避免因一个表的数据修 改,而导致关联生效。

【软件设计师考试2006年5月上午试题48】 某数据库中有: 员工关系E(员工编号,姓名,部门) 产品关系P(产品编号,产品名称,型号,尺寸,颜色); 仓库关系W(仓库编号,仓库名称,地址,负责人编号); 库存关系I(仓库编号,产品编号和产品数量) 若要求仓库关系的负责人引用员工关系的员工编号, 员工关系E的员工编号、仓库关系W的仓库编号和产品关系P 的产品编号不能为空且惟一标识一个记录,并且仓库的地址 不能为空,则依次要满足的完整性约束是 (48) 。

(48) A. 实体完整性、参照完整性、用户定义完整性 B. 参照完整性、实体完整性、用户定义完整性 C. 用户定义完整性、实体完整性、参照完整性 D. 实体完整性、用户定义完整性、参照完整性

【软件设计师考试2006年5月上午试题48】 在数据库系统中,数据的完整性约束的建立需要通过 数据库管理系统提供的(51) 语言来实现。 (51)A. 数据定义 B. 数据操作 C. 数据查询 D. 数据控制

2.4 数据操作 关系数据库的数据操作语言(DML)的语句分成查询语句 和更新语句两大类。查询语句用于描述用户的各种检索要 求;更新语句用于描述用户进行插入、删除、修改等操作。 关于查询的理论称为“关系运算理论”。 关系查询语言根据其理论基础的不同分成两大类: 关系代数语言:查询操作是以集合操作为基础的DML语言。 关系演算语言:查询操作是以谓词演算为基础的DML语言。

关系代数 关系代数的五个基本操作 关系代数的四个组合操作 —— 交、联接、自然连接、除法 关系演算 元组关系演算 域关系演算 —— 并、差、笛卡尔积、投影、选择 关系代数的四个组合操作 —— 交、联接、自然连接、除法 关系演算 元组关系演算 域关系演算

关系代数 关系代数的五个基本操作 (1)并(Union) 设关系R和S具有相同的关系模式,R和S的并是由属于R 形式定义如下: R∪S≡{t | t∈R ∨ t∈S}, t是元组变量,R和S的元数相同。

R S

(2)差(Difference) 设关系R和S具有相同的关系模式,R和S的差是由属于R 但不属于S的元组构成的集合,记为R-S。 形式定义如下: R-S≡{ t | t∈R ∧ t∈S},R和S的元数相同。

R S

(3)笛卡尔积 设关系R和S的元数分别为r和s。定义R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自R的一个元组,记为R×S。 形式定义如下: R×S≡{ t |t=<tr,ts>∧tr∈R∧ts∈S} 若R有m个元组,S有n个元组,则R×S有m×n个元组。

R S

(4)投影(Projection) 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。 设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…,im为1到k间的整数)上的投影用πi1,…,im(R)表示,它是一个m元元组集合, 形式定义如下: πi1,…,im(R)≡{ t| t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R }

例如,π3,1(R)表示关系R中取第1、3列,组成新 处也可以用属性名表示。例如,关系R(A,B,C), 那么πC,A(R)与π3,1(R)是等价的。

R S

(5)选择(Selection) 选择操作是根据某些条件对关系做水平分割,即选取 符合条件的元组。条件可用命题公式(即计算机语言中的条 件表达式)F表示。 F中有两种成分:运算对象和运算符 形式定义如下: σF(R)={ t | t∈R ∧ F(t)= true } σ为选择运算符,σF(R)表示从R中挑选满足公式F为 真的元组所构成的关系。

例如,σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值 大于3的元组所构成的关系。 常量用引号括起来,而属性序号或属性名不要用 引号括起来。

R S

关系代数的四个组合操作 (1)交(intersection) 关系R和S的交是由属于R又属于S的元组构成的集合,记 形式定义如下: R∩S≡{t︱t∈R ∧ t∈S},R和S的元数相同。

θ连接是从关系R和S的笛卡儿积中选取属性间满足某一θ操作的元组, (2)连接(join) 连接有两种:θ连接和F连接 ① θ连接 (θ是算术比较符) θ连接是从关系R和S的笛卡儿积中选取属性间满足某一θ操作的元组, R ⋈ S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθ tsj } 因此,θ连接由笛卡尔积和选择操作组合而成。 R ⋈ S≡ σiθ(r+j) (R×S) iθj iθj

② F连接 (F是公式) F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组, 这里F是形为F1∧F2∧…∧Fn的公式,每个FP是形为iθj的式子,而i和j分别为关系R和S的第i、第j个分量的序号。

(3) 自然连接(natural join) 两个关系R和S的自然连接操作具体计算过程如下: ① 计算R×S ; ② 设R和S的公共属性是A1,…,AK,挑选R×S中满足 R.A1=S.A1,…,R.AK=S.AK的那些元组; ③去掉S.A1,…,S.AK这些列。 形式定义如下: R⋈S ≡ πi1,…,im (σR.A1=S.A1∧... ∧R.AK=S.AK (R×S)), 其中i1,…,im为R和S的全部属性,但公共属性只出现一次。 自然连接就是等值连接去掉重复列。

【软件设计师考试2007年11月上午试题543、55】 (54)A. π,σ和× B. -,σ和× C. ∩,σ和× D. π,σ和∩ 关系R、S如下图所示,R⋈S可由 (54) 基本的关系运 算组成,R⋈S = (55) 。 (54)A. π,σ和× B. -,σ和× C. ∩,σ和× D. π,σ和∩ A D

(4)除法(division) 设关系R和S的元数分别为r和s(设r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R中。 R÷S≡π1,2,…,r-s(R)-π1,2,,,r-s((π1,2,…,r-s(R)×S)-R)

R S R÷S A B C D a b c d e f C D c d e f A B a b e d ① 先列出R-S的属性 ② 属性值A、B同时满足S中(c,d)和(e,f)的元组。

例:选修了所有课程的学生的学号和姓名。 C# s1 s1 s3 选修表 s2 课程 选修表÷课程 s3 s4 S# C# c1 c2 c1

例:检索所学课程包含学生s1所学课程的学生学号。 选修表 课程 S# C# Grade s1 c1 90 c2 85 s2 c4 76 s3 68 65 s4 70 c3 86 C# Cname c1 数据库 c2 英语 c3 高数 c4 体育 S# s1 s3 πs#,c#(选修表)÷ πc# (σs#=ˊs1ˊ (选修表))

在关系代数运算中,关系 S、SP和R如下表所示。若 先 ___(33)___ ,则可以从 S 和 SP 获得 R 。其对应的 【软件设计师考试2005年11月上午试题33、34】 在关系代数运算中,关系 S、SP和R如下表所示。若 先 ___(33)___ ,则可以从 S 和 SP 获得 R 。其对应的 关系表达式为 ___(34)___ 。 SP R S 部门号 商品号 销售量 010 01020210 500 01020211 780 01020212 990 021 02110200 580 025 02520100 1290 035 03530311 4680 部门名 商品号 销售量 家电部 01020210 500 01020211 780 01020212 990 部门号 部门名 010 家电部 021 百货部 030 食品部 035 五金部

(33)A.对 S 进行选择运算,再与 S 进行自然连接运算 B.对 S 进行选择运算,再与 SP 进行自然连接运算,最 后进行投影运算 C.对 S 和 SP 进行笛卡尔积运算,再对运算结果进行投 影运算 D.分别对 S 和 SP 进行投影运算,再对运算结果进行 笛卡尔积运算

如下的 SQL 语句可以查询销售总量大于 1000 的部门号。 Select 部门名 From S Where 部门号 in (Select 部门号 From SP Group by ___(35)___) (35) A. 部门号 where sum( 销售量 )>1000 B. 部门号 having sum( 销售量 )>1000 C. 商品号 where sum( 销售量 )>1000 D. 商品号 having sum( 销售量 )>1000

【软件设计师考试2006年5月上午试题47】 设有关系R、S如下所示,则关系代数表达式R÷S的结果 集为(47) 。 C R S

关系演算 元组关系演算 在元组关系演算中,元组关系演算表达式简称为元组表 达式,其一般形式为: { t|P(t)} 公式,在数理逻辑中也称为谓词,也就是计算机语言中的条 件表达式。{ t|P(t)}表示满足公式P的所有元组t的集 合。

在元组表达式中,公式由原子公式组成。 原子公式(Atoms)有下列三种形式: ① R(s) :s是R的一个元组。 ② s[i]θu[j] :元组 s的第i个分量与元组u的第j个分量之间 满足θ关系。 ③ s[i]θa或aθu[j]:a是常量。 在定义关系演算操作时,要用到“自由” 和“约束”变量概 念。在一个公式中,如果元组变量未用存在量词∃或全称量 词符号定义,那么称为自由元组变量,否则称为约束元组 变量。

例:已知关系R,S,给出R1-R5五个关系的元 组关系演算表达式。 R1 = { t | S(t)∧t[1]>2 }

R2 = { t | R(t)∧┐S(t)}

R3 = { t |(u)(S(t)∧R(u)∧t[3]<u[2]}}

R4 = { t |(u)(R(t)∧ S(u)∧t[3]>u[1])}

R5 = { t |(u)(v)(R(u)∧ S(v)∧u[1]>v[2]∧t[1]=u[2]∧t[2]=v[3]∧t[3]=u[1])}

关系代数表达式到元组表达式的转换: R∪S 可用{ t | R(t)∨S(t)}表示; R×S可用{ t |(u)(v)(R(u)∧S(v) ∧t[1]=u[1] ∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2] ∧t[6]=v[3])} 表示。 投影操作是π2,3(R),那么元组表达式可写成: { t |(u)(R(u)∧t[l]=u[2]∧t[2]=u[3])} σF(R)可用{ t |R(t)∧F‘}表示,F’是F的等价表示形式。 例如σ2='d'(R)可写成{ t |(R(t)∧t[2]='d')。

【软件设计师考试2005年5月上午试题36、37】 某数据库中有供应商关系S和零件关系P,其中;供应商 关系模式S(Sno,Sname,Szip,City),零件关系模式 P(Pno,Pname,Color,Weight,City),供应模式 SP(Sno,Pno, Status,Qty),要求一个供应商可以供应多 种零件,而一种零件可由多个供应商供应。 查询供应了“红”色零件的供应商名、零件号和数量的 元组演算表达式为: {t|(u)(v)(w)( (36) ∧u[1]=v[1]∧v[2]=w[1]∧w[3]=' 红'∧ (37) )}

(36) A. S(u)∧SP(v)∧P(w)          B. SP(u)∧S(v)∧P(w)    C. P(u)∧SP(v)∧S(w)        D. S(u)∧P(v)∧SP(w) (37) A.t[1]=u[1]∧t[2]=w[2]∧t[3]=v[4]  B. t[1]=v[1]∧t[2]=u[2]∧t[3]=u[4] C. t[1]=w[1]∧t[2]=u[2]∧t[3]=v[4]  D. t[1]=u[2]∧t[2]=v[2]∧t[3]=v[4]

关系数据库SQL语言 SQL的数据定义 SQL的数据查询 SQL的数据更新

【软件设计师考试2005年11月上午试题33、34】 关系R,S如下图所示,元组演算表达式 {t|(u)(R(t)∧S(u)∧t[3]﹥u[1])}的结果为 (47)

SQL的数据定义——创建表 CREATE TABLE <表名> ( <列名1> <数据类型> <完整性约束条件1>, <列名2> <数据类型> <完整性约束条件2>, ………… , <列名n> <数据类型> <完整性约束条件n> )

涉及相应属性列的完整性约束条件: 主键约束:PRIMARY KEY 检查约束:CHECK 外键约束:FOREIGN KEY 唯一性约束: UNIQUE 是否为空值约束: NULL / NOT NULL 默认值: DEFAULT

例:使用T-SQL语言创建Student 表 Student(Sno , Sname, Ssex ) CREATE TABLE Student (sno CHAR(10) PRIMARY KEY , sname CHAR(8) NOT NULL UNIQUE, ssex CHAR(2) DEFAULT ('男') )

例:使用T-SQL语言创建Crouse表 Crouse (cno,cname, credit ) CREATE TABLE Course ( cno char(10) PRIMARY KEY, cname char (8) NOT NULL UNIQUE, credit int )

例:使用T-SQL语言创建SC表 SC ( sno,cno,score) 主键表名 CREATE TABLE SC ( sno CHAR(10) FOREIGN KEY REFERENCES Student (sno), cno CHAR(10) FOREIGN KEY REFERENCES Course (cno) , score INT CHECK (score BETWEEN 0 AND 100) , PRIMARY KEY (sno, cno) ) 主键

CREATE TABLE SC ( sno CHAR(10), cno CHAR(10), score INT, PRIMARY KEY (sno, cno), FOREIGN KEY (sno) REFERENCES Student (sno), FOREIGN KEY (cno) REFERENCES Course (cno) , CHECK (score BETWEEN 0 AND 100) )

某数据库中有供应商关系S和零件关系P,其中;供应商 关系模式S(Sno,Sname,Szip,City)零件关系模式 P(Pno,Pname,Color,Weight,City)要求一个供应 商可以供应多种零件,而一种零件可由多个供应商供应。 请将下面的SQL语句空缺部分补充完整。 CREATE TABLE SP(Sno CHAR(5),    Pno CHAR(6),    Status CHAR(8),    Qty NUMERIC(9),    __(33)__(Sno,Pno),    __(34)__(Sno),    __(35)__(Pno));

供选择的答案: (33)-(35) A.FOREIGN KEY    B.PRIMARY KEY C.FOREIGN KEY(Sno)REFERENCES S      D.FOREIGN KEY(Pno)PEFERENCES P (33)A (33)C (35)D

SQL的数据查询 数据查询语句基本格式如下: SELECT <查询项的列表> FROM <表名> WHERE <条件表达式>

6个聚合函数: SUM(列名):求某一列的总和(此列的值必须是数值型) AVG(列名):求某一列的平均值(此列的值必须是数值型) MIN(列名):求某一列中的最小值 MAX(列名):求某一列中的最大值 COUNT(列名):传回一列中的非NULL值的个数 COUNT(*):传回符合查询条件的元组的个数

例:查询男生的总人数,以及他们的平均年龄。 SELECT COUNT(*), AVG(年龄) FROM 学生 WHERE 性别=‘男’

例:查询财管1班的所有学生的英语总成绩和均分。 SELECT SUM(c1), AVG(c1) FROM 成绩 WHERE c#=‘c1’

ORDER BY子句——对查询的结果进行排序 SELECT语句中可以使用ORDER BY子句对查询 的结果进行排序,带ASC参数时为升序,带DESC参数 时为降序,不待任何参数时为默认方式——升序。 SELECT <查询项的列表> FROM <表名> WHERE <条件表达式> ORDER BY <排序表达式> [ASC | DESC]

例:查询全体学生的姓名和年龄,年龄按降序排列 显示。 例:查询全体学生的姓名和年龄,年龄按降序排列 显示。 SELECT 姓名, 年龄 FROM 学生 ORDER BY 年龄 DESC

GROUP BY 子句、 HAVING 子句 ——按条件分类统计 在SELECT语句中可以使用GROUP BY子句进 行分类统计。 GROUP BY子句可以将表达式的值相 同的记录归为同一组,从而进行统计。 语法格式如下: GROUP BY <分组表达式>

HAVING <组条件表达式> 和SELECT语句一起使用,通常和GROUP BY连用。 语法格式如下: HAVING <组条件表达式>

例:查询女生每一年龄组有多少人。 SELECT 年龄, count(*) FROM 学生 WHERE 性别='女' GROUP BY 年龄

例:查询女生每一年龄组超过10人的年龄。 SELECT 年龄, FROM 学生 WHERE 性别='女' GROUP BY 年龄 HAVING COUNT(*)>10

例:查询平均成绩低于60分的课程。 SELECT 课程号, AVG (成绩) FROM 成绩 GROUP BY 课程号 HAVING AVG (成绩) <60

例:下面给一个关系模式 R(TNAME,ADDRESS,C#,CNAME) 关系模式中的属性一次表示教师姓名,教师地址,课 程编号,课程名。分析该模式存在的问题。 TNAME ADDRESS C# CNAME t1 a1 c1 n1 c2 n2 c3 n3 t2 a2 c4 n4 c5 t3 a3 c6

有现实世界中的事实可知: 一个教师只有一个地址(户籍所在地); 一个教师可教若干门课程; 每门课程只有一个教师任教。 即:TNAME → ADDRESS C# → CNAME C# → TNAME 于是关系模式R的主键是 C#

虽然这个模式只有四个属性,但在使用过程中明显存 在下列问题。 数据冗余。在上述关系中,如一名教师教多门课程, 那么这位教师的地址就要重复多次。 (2)更新异常。由于数据的冗余,在数据更新时会出现问 题,例如:一个教师教三门课程,在关系中就会有三个元 组,如果他的地址改变了,这三个元组中的地址都要改 变,若有一个元组中的地址没有更改,就造成这个教师的 地址不惟一,产生错误的信息。

(3)插入异常。在关系方法中,每个关系必须用键值区分关系 中的不同元组。如果新增加一名教师,尚未分配教学任务,那 么要存储该教师的姓名和地址到关系中去时,在属性C#和 CNAME上就没有值,在本例中C#是主键的一部分,键值为空的 元组违反了实体完整性约束。 (4)删除异常。与插入异常相反,删除操作会引起一些信息的 丢失。如一个教师原来有教学任务,目前没有安排那么要把这 个教师的所有元组都要删去,这样就把这个教师的姓名和地址 信息也从数据库中删去了,这也是一种不合理的现象。

对于上述模式中存在的问题可采用分解的方法,将 其分解成两个模式: R1(TNAME,ADDRESS) R2(TNAME,C#,CNAME) 那么分解后的关系模式的好坏,用什么标准来衡量 呢? —— 范式:满足特定要求得关系模式。

设有关系模式R(U),X和Y是属性集U的子 集, r是R任一具体关系,如果对r的任意两个元组 t1和 t2,都有t1[X]= t2[X]导致t1[Y]= t2[Y], 那么称X函数决定Y或Y函数依赖X,记为X→Y, X→Y为模式R的一个函数依赖。

第一范式 如果关系模式R的每个关系r的属性值都是不可分的原子 值,那么称R是第一范式(first normal form,简记为1NF)的 模式。 满足1NF的关系称为规范化的关系,否则称为非规范化的关 系。关系数据库研究的关系都是规范化的关系。例如关系模式R (NAME,ADDRESS,PHONE),如果一个人有两个电话号码 (PHONE),那么在关系中至少要出现两个元组,以便存储这两 个号码。 1NF是关系模式应具备的最起码的条件。在建立关系数据模 型时,必须将非规范化形式规范化,

第一范式

第二范式 如果关系模式R是1NF,且每个非主属性完全函数依赖 于候选键,那么称R是第二范式(2NF)模式。如果数据库 模式中每个关系模式都是2NF,则称数据库模式为2NF的数 据库模式。 对于函数依赖W→A,如果存在X⊂W有X→A成立,那么 称W→A是局部依赖(A局部依赖于W);否则称W→A是完 全依赖。

例:现在分析以下关系,它符合第一范式。假定职工号 是每个职工的唯一标识,而工资完全由级别所确定。毕 业时间由职工号和学历确定。 这表明:姓名、级别、工资等的取值依赖于职工号, 而毕业时间要由职工号和学历两个属性才能唯一确定。

那么,在这个表中各个属性之间表示的相互依赖关系如图。 存在(姓名,级别,工资)对(职工号,学历)的局部依赖

因此,可以拆开原来关系为以下两个关系,使之成 为第二范式。  

第三范式 如果关系模式R是1NF,且每个非主属性都不 传递依赖于R的候选键,那么称R是第三范式 (3NF)的模式。如果数据库模式中每个关系模 式都是3NF,则称其为3NF的数据库模式。 如果X→Y,Y→A,且Y→X和 A∈Y,那么称 X→A是传递依赖(A传递依赖于X)。

由以上关系可以看到实际上可能很多人的级别都是技6级 的,那么他们的工资都是1500元,如果把技6级的工资改为 1800元,则所有技6级的工资都要改,只要一个人改错了, 就会造成同一级工资不一样的错误。 原因就在于这些属性间存在着传递依赖关系: 职工号→级别,级别→工资 从而使:职工号→级别→工资

进一步的规范化就是要消去非主属性对主关键字的传递 依赖性,变为第三范式。 现在只要把第二范式的关系恰当拆开为几个关系即可达 目的。

【软件设计师考试2004年11月上午试题45、46】 建立一个供应商、零件数据库。其中“供应商”表S(Sno,Sname,Zip,City)分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:Sno→(Sname,Zip,City ),Zip→City。“供应商”表S属于 (53) 。 (53)A. 1NF B. 2NF C. 3NF D. BCNF B

数据库模式设计原则 : 关系模式R相对于函数依赖集分解成数据库模式ρ={R1, R2,。。。Rk },一般应具有下面四项特性。 (1) Ρ中每个关系模式 上应有某种分时性质(3NF或 BCNF) (2)无损联接。 (3)保持函数的依赖集。

无损联接 设R是一个关系模式,F是R上的一个函数依赖 集。R分解成数据库模式ρ={ R1,…,Rk }。 如果对R中满足F的每一个关系r,都有 r=πR1(r)⋈πR2(r)⋈ … ⋈πRk(r) 那么称分解ρ相对于F是“无损联接分解” 简称 为“无损分解”,否则称为“损失分解”。

无损联接测试: 设ρ={ R1,R2 }是关系模式R的一个分 解,F是R上成立的FD集,那么分解ρ相对于F 是无损分解的充分必要条件是: (R1∩R2)→(R1-R2) 或 (R1∩R2)→(R2-R1)。

保持函数的依赖集 保持关系模式一个分解是等价的另一个重要条 件是关系模式的函数依赖集在分解后仍在数据库模 式中保持不变。 设ρ={ R1,…,Rk }是R的一个分解,F是R 上的函数依赖,如果有 ∪πRi(F)=F,那么称分 解ρ保持函数依赖集F。

【软件设计师考试2004年11月上午试题45、46】 A C 关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X, X→Z,Y→W}。关系模式R的候选建是 (45) 、 (46) 是无损 连接并保持函数依赖的分解。 (45)A.W和Y  B. WY   C.WX    D.WZ (46)A.p={R1(WY),R2(XZ)}        B.p={R1(WZ),R2(XY)}    C.p={R1(WXY),R2(XZ)}        D.p={R1(WX),R2(YZ)} A C

U={W,X,Y,Z},F={WX→Y,W→X, X→Z,Y→W} 求属性集U关于函数依赖F的属性闭包U+。 设 W+=W 找到左边被W包含的函数依赖关系:W→X, 将 W+= W∪X =WX 同理:找到左边被WX包含的函数依赖关系:WX→Y, X→Z 将 W+= WX∪Y∪Z =WXYZ 所以W+=WXYZ,即W能决定多有的属性,W为候选键

U={W,X,Y,Z},F={WX→Y,W→X, X→Z,Y→W}