第13章对象约束语言

合集下载

数据库习题库

数据库习题库

第1章绪论1.数据库数据具有__________、__________和__________三个基本特点。

答案:永久存储、有组织、可共享2.试述数据、数据库、数据库系统、数据库管理系统的概念。

3.使用数据库系统有什么好处?4.数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________、__________、__________、__________。

答案:数据定义功能、数据操纵功能、数据库的事物管理和运行管理、数据库的建立和维护功能5.数据库系统是指在计算机系统中引入数据库后的系统,一般由__________、__________、__________和__________构成。

答案:数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员6.试述文件系统与数据库系统的区别和联系。

7.数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:__________阶段,__________阶段和__________阶段。

答案:人工管理、文件系统、数据库系统8.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。

9.数据库具有数据结构化、最小的__________、较高的__________和易扩展性等特点。

答案:冗余度、数据独立性10试述数据库系统的特点。

11.DBMS还必须提供__________保护、__________检查、__________、__________等数据控制功能。

答案:数据的安全性数据的完整性并发控制数据库恢复12.数据库管理系统的主要功能有哪些?答案:①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能。

13.模式(Schema)是数据库中全体数据的__________和__________的描述,它仅仅涉及到__________的描述,不涉及到具体的值。

答案:逻辑结构、特征、型14.试述数据模型的概念、数据模型的作用和数据模型的三个要素。

《SQL Server 2000》网络课程同步练习与模拟试题

《SQL Server 2000》网络课程同步练习与模拟试题

同步练习题第1章数据库基础知识一、单项选择题1. 通常所说的数据库系统(DBS)、数据库管理系统(DBMS)、和数据库(DB)三者之间的关系是A. DBMS包含DB和DBSB. DB包含DBS和DBMSC. DBS包含DB和DBMSD.三者无关答案:A2.数据是信息的载体,信息是数据的A. 符号化表示B. 载体C. 内涵D. 抽象答案:C3. 下列说法不正确的是A. 数据库避免了一切数据重复B. 数据库减少了数据冗余C. 数据库数据可为经DBA认可的用户共享D. 控制冗余可确保数据的一致性答案:A4.在数据库中,产生数据不一致的根本原因是A. 没有严格保护数据B. 数据存储量太大C. 数据间联系弱D. 数据冗余答案:D5.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为A. 数据定义功能B. 数据管理功能C. 数据操纵功能D. 数据控制功能答案:C6.E-R模型是数据库设计的工具之一,它一般适用于建立数据库的A. 概念模型B. 结构模型C. 物理模型D. 逻辑模型答案:A7. 当实体中有多个属性可作为键而选定其中一个时,称为该实体的A. 外部键B. 候选键C. 主键D. 主属性答案:C8. 如某属性虽非该实体主键,却是另一实体的主键,称此属性为A. 外部键B. 候选键C. 主键D. 主属性答案:A9.自然连接是构成新关系的有效方法。

一般情况下,当对关系R和S使用自然联接时,要求R和S含有一个或多个共有的A. 元组B.行C. 记录D.属性答案:D10.关系模型中的关系模式至少是A.1NF B.2NFC.3NF D.BCNF答案:A11.候选关键字中的属性称为A.非主属性B.主属性C.复合属性D.关键属性答案:B12.关系模式中各级模式之间的关系为A.3NF⊂2NF⊂lNF B.3NF⊂lNF⊂2NFC.1NF⊂2NF⊂3NF D.2NF⊂lNF⊂3NF答案:A13. 数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作的是A. 建立库结构B.扩充功能C. 加载数据D.系统调试答案:B14.从E-R模型向关系模型转换,一个M:N的联系转换成关系模式时,该关系模式的键是A. M端实体的键B. N端实体的键C. M端实体键与N端实体键组合D. 重新选取其他属性答案:C15.数据库逻辑设计的主要任务是A. 建立E-R图和说明书B.创建数据库模式C. 建立数据流图D. 把数据送入数据库答案:B二、填空题1.要满足基本应用,一个数据库系统通常应提供给用户使用的基本语言有和。

实验逻辑学智慧树知到答案章节测试2023年南开大学

实验逻辑学智慧树知到答案章节测试2023年南开大学

绪论单元测试1.A:错B:对答案:B2.Boole中的语句不能粘贴到Fitch中。

()A:对B:错答案:B第一章测试1.要打开Tarski’s World,点击文件Tarski’s World.exe。

A:对B:错答案:A2.在Tarski’s World中,要打开事先保存的世界文件和语句文件,可以点击File菜单中的Open命令。

A:对B:错答案:A3.在Tarski’s World中,要保存一份世界文件,最安全的命令是Save World 。

A:对B:错答案:B4.在棋盘上放置一个模块,点击工具栏中的()。

A:New按钮B:Play Game按钮C:Verify按钮D:打印按钮答案:A5.要删除一个世界文件的方法之一是()。

A:在File菜单中,点击Clear命令B:点击Play Game按钮C:Verify按钮D:点击New按钮答案:A6.当你在语句窗口中,输入的是一个合式公式时,靠近语句标号的左边显示()。

A:FB:+C:*D:T答案:B7.在Tarski’s World中,模块的大小有()这几种情况。

A:中B:大C:较小D:小答案:ABD8.在Tarski’s World中,模块的形状有()这几种情况。

A:立方体B:圆C:十二面球体D:锥体答案:ACD9.在Tarski’s World中,一个模块的名字可以有()。

A:三个B:一个C:四个D:两个答案:ABCD10.Tarski’s World不允许给一个模块命名多个名字。

A:对B:错答案:B第二章测试1.要打开Fitch,点击文件Fitch.exe.A:对B:错答案:A2.在Fitch中,要打开Fitch练习文件夹中的文件,可以使用File菜单中的Open命令。

A:错B:对答案:B3.在Fitch中,要保存一份已完成的证明,用Save As命令。

A:对B:错答案:A4.在Fitch的一个证明过程中,要在一行的前面增加一行,点击Proof菜单中的()。

Oracle基础教程(第3版)教案

Oracle基础教程(第3版)教案

目录第I部分 SQL语言与PL/SQL语言 (9)第1章数据库的概念与Oracle的安装 (9)1.1实体-关系模型 (9)1.2 关系数据库系统概述 (9)1.3 Oracle数据库历史与Oracle (10)1.4 Oracle数据库的安装 (11)1.5 本章小结 (14)第2章 SQL语言基础 (15)2.1 Oracle的数据类型 (15)2.2 SQL基本语法 (15)2.3 SQL*PLUS 工具和SQL*Plus工作单 (16)2.4函数 (17)2.4.1 单行SQL字符函数 (18)2.4.2 转换格式函数 (19)2.4.3 多行函数 (20)2.5本章小结 (20)第3章数据操作和数据库对象 (21)3.1 多表查询 (21)3.1.1 简单的两表查询 (21)3.1.2 三表查询和多表查询 (21)3.1.3 一些连接操作设置符号 (21)3.2 数据修改 (22)3.2.1 数据的插入 (22)3.2.2 数据的修改 (22)3.2.3 数据的删除 (22)3.3 事务控制命令 (22)3.4 表的创建与修改 (23)3.4.1 生成一个简单表 (23)3.4.2 表的重命名与删除 (24)3.5 视图 (24)3.6 其他数据库对象和数据字典 (25)3.6.1 索引(Index) (25)3.6.2 约束 (26)3.6.3 同义词 (26)3.6.4 过程、函数和包 (26)3.6.5 触发器 (27)3.6.6 数据字典 (27)3.7 本章小结 (27)4.1 PL/SQL简介 (28)4.2 PL/SQL块结构与用途 (28)4.3常量与变量 (29)4.3.1 变量声名 (29)4.3.2 常量 (29)4.3.3 单字符分界符和双符分界符 (29)4.3.3 标识符 (30)4.4 执行一个PL/SQL块 (30)4.7 游标 (31)4.8 出错处理 (32)4.9 本章小结 (33)第II部分 ORACLE数据库结构与管理 (34)第5章 Oracle的管理界面 (34)5.1 企业管理器 (34)5.2 Oracle Net Manager (34)5.3 登录方式 (35)5.4 启动和关闭数据库服务器 (35)5.5 配置系统初始化参数 (36)5.6 本章小结 (36)第六章 Oracle服务器的例程 (37)6.1 系统全局区 (37)6.1.1 数据库高速缓冲区 (37)6.1.2 共享存储区 (38)6.1.3 重做日志缓冲区 (38)6.1.4 Java存储区 (38)6.1.5 大型存储区 (38)6.1.6空池 (38)6.2进程全局区 (39)6.3用户全局区 (39)6.4 Oracle进程 (39)6.4.1 服务器进程 (39)6.4.2 后台进程 (40)6.4.3从属进程 (41)6.5 本章小结 (41)第7章 Oracle数据库的物理结构 (43)7.1 数据文件 (43)7.2 控制文件 (43)7.2.1 多路控制文件 (43)7.2.2 控制文件的生成 (44)7.2.3 查询控制文件信息 (44)7.3.1 管理重做日志文件 (45)7.3.2 日志转换(Log Switch) (45)7.3.3 检查点 (45)7.3.4 多路日志文件 (45)7.4 归档日志文件 (46)7.4.1 设置归档路径 (46)7.4.2 设置ARCHIVELOG/NOARCHIVELOG模式 (46)7.4.3 查询日志和归档信息 (47)7.5 本章小结 (47)第八章 Oracle数据库的逻辑结构 (48)8.1 表空间 (48)8.1.1 表空间管理 (48)8.1.2 管理数据文件 (50)8.1.3 数据文件信息查询 (50)8.2 数据块 (50)8.3 扩展区 (51)8.4 段 (51)8.4.1 数据段和索引段 (51)8.4.2 临时段 (52)8.4.3 回滚段 (52)8.5 本章小结 (53)第9章表、索引与约束 (54)9.1 数据库表创建 (54)9.1.1 生成一个简单表 (54)9.1.2 指定存储参数 (54)9.1.3 为表分区 (55)9.2 表管理 (55)9.2.1 指派与回收扩展区 (55)9.2.2 表重组 (55)9.3 表分析 (56)9.4 创建索引 (56)9.4.1 索引的分类与生成 (56)9.4.2 索引修改 (57)9.4.3 查询索引信息 (57)9.5 数据库的完整性约束 (57)9.5.1 约束的分类 (57)9.5.2 约束的创建 (57)9.6 本章小结 (58)第10章概要文件、用户权限与角色 (59)10.1 概要文件 (59)10.2 管理用户 (60)10.2.2 修改用户信息 (60)10.2.3 删除用户 (60)10.3 用户验证 (61)10.4 查询用户信息 (61)10.5 权限与角色 (61)10.5.1 对象权限 (61)10.5.2 系统权限 (62)10.5.3权限回收 (62)10.5.4角色管理 (62)10.6 本章小结 (63)第11章常用工具 (64)11.1 SQL*Loader (64)11.2 数据导入与导出 (64)11.2.1 用EXPORT导出数据 (64)11.2.2 用IMPORT导入数据 (64)11.2.3 表空间传输 (65)11.3 国家语言支持 (65)11.4 本章小结 (66)第三部分 ORACLE 数据库的备份与恢复 (67)第12章Oracle备份与恢复机制 (67)12.1 理解数据库备份 (67)12.2 冷备份与热备份 (68)12.3 归档备份与非归档备份对恢复的影响 (68)12.4 理解几种不同的恢复机制 (69)12.5 本章小结 (69)第13章非RMAN下物理备份与恢复实现 (70)13.1 数据库的冷备份 (70)13.2 数据库的热备份 (70)13.3 控制文件的备份 (70)13.4 几种不同的恢复方式 (71)13.4.1 非归档日志下的数据库恢复 (71)13.4.2 归档日志下对丢失部分数据文件的恢复 (71)13.4.3 丢失整个数据库情况下的恢复 (72)13.5非完全恢复 (72)13.5.1 基于Cancel的恢复 (72)13.5.2 基于Time的恢复 (72)13.5.3 基于SCN的恢复 (73)13.6 本章小结 (73)第14章逻辑备份与恢复 (74)14.1 使用逻辑备份与恢复工具 (74)14.2 数据库逻辑备份与恢复的实现 (74)14.3 使用Oracle企业管理器 (74)14.4 本章小结 (75)第15章Oracle恢复机制的补充 (76)15.1 并行恢复的实现 (76)15.2 控制文件的重建 (76)15.3 只读表空间的恢复 (77)15.4 本章小结 (77)第16章Oracle数据库恢复管理器和待命服务器 (78)16.1 RMAN简介 (78)16.1.1 Nocatalog 下连接RMAN (78)16.1.2 创建恢复目录 (78)16.1.3 管理恢复目录 (79)16.1.4 LIST和REPORT命令 (79)16.1.5 生成存储恢复管理器语句 (79)16.1.6 操作系统命令备份 (80)16.2 使用RMAN进行备份 (80)16.2.1 备份的分类与实现 (80)16.2.2 备份操作的调整 (80)16.3 使用RMAN进行还原与恢复 (80)16.3.1 数据文件的恢复 (81)16.3.2 表空间的恢复 (81)16.3.3 非归档日志下数据库的还原 (81)16.4 Oracle服务器的备用数据库(Standby Database) (81)16.4.1 考虑使用Standby Database (82)16.4.2 初始化参数的配置 (82)16.4.3 创建待命数据库 (82)16.5 本章小结 (83)第IV部分性能调整 (84)第17章性能调整概要 (84)17.1 调整目标与计划的制定 (84)17.2 调整内容 (84)17.3 常用调整工具 (85)17.4 本章小结 (85)第18章Oracle内容调整 (86)18.1 共享存储器调整 (86)18.1.1 调整库高速缓存与数据字典高速缓存 (86)18.1.2 共享存储区的“命中率” (86)18.1.3 提高共享存储区的性能 (87)18.2.1 存取区缓存管理机制 (87)18.2.2 测量高速缓冲区的性能 (88)18.2.3 提高缓冲区的性能 (88)18.3 重做日志缓冲区的调整 (89)18.3.1 测试日志缓冲区的性能 (89)18.3.2 提高日志缓冲区的性能 (90)18.4 本章小结 (90)第19章结构查询语句与应用程序设计调整 (91)19.1 TKPROF工具 (91)19.2 解释计划 (91)19.3 使用AUTOTRACE工具选项 (91)19.4 理解Oracle的最佳性能 (92)19.5 设置优化模式 (92)19.5.1 例程级优化模式 (93)19.5.2 会话级优化模式 (93)19.5.3 语句级优化模式 (93)19.6 应用程序的性能 (94)19.6.2 索引与聚簇来最小化I/O (94)19.7 OLTP和DSS系统的性能调整要求 (96)19.8 本章小结 (96)第20章物理I/O调整 (97)20.1 数据文件I/O的调整 (97)20.2 数据库写进程的调整 (97)20.3 段与数据块的调整 (98)20.4 检查点进程的调整 (98)20.5 归档日志进程的调整 (99)20.6 排序区的调整 (99)20.7 回滚段的调整 (100)20.7.1 回滚段的作用 (100)20.7.2 回滚段的种类 (100)20.7.3 回滚段I/O性能测试 (101)20.7.4 提高回滚段I/O性能 (101)20.8 本章小结 (101)第21章调整竞争 (102)21.1 锁 (102)21.1.1 数据锁 (102)21.1.2 字典锁 (103)21.1.3 死锁 (104)21.2 闩的调整 (104)21.3 Freelist的竞争 (105)21.4 本章小结 (105)22.1资源管理概况 (106)22.2 资源管理配置 (106)22.3 资源管理器的管理 (107)22.4 使用SQL*PLUS创建资源计划和使用者组 (107)22.5 本章小结 (107)第23章Oracle性能调整工具 (108)23.1 考虑使用Oracle Expert (108)23.2 Oracle Expert的使用 (108)23.2.1 设定范围 (108)23.2.2 收集统计 (110)23.2.3 复查 (111)23.2.4 生成建议案 (112)23.2.5 脚本的生成 (112)23.3 本章小结 (112)第5部分网络管理 (113)第24章Net Manager基本架构 (113)24.1 Oracle Net Manager功能简介 (113)24.2 Oracle 监听器 (113)24.3 概要文件 (113)24.4 网络服务命名 (114)24.5 Oracle Net Manager网络协议堆栈段 (114)24.5.1 典型的OSI协议通信栈 (114)24.5.2 Oracle Net Manager客户端/服务器中的堆栈 (115)24.6 Oracle连接管理器 (116)24.7 域 (117)24.8 本章小结 (117)第25章Oracle网络服务配置 (118)25.1 配置监听器 (118)25.2 本地命名服务器配置 (118)25.3 主机命名法 (119)25.4 Oracle命名服务器配置 (119)25.5 多线程服务器配置与网络安全 (119)25.5.1 多线程服务器配置 (119)25.5.2 高级网络安全 (120)25.6 本章小结 (120)第26章出错处理 (121)26.1服务器段异常处理 (121)26.2 命名服务器异常出理 (121)26.3 客户机异常处理 (121)26.5 NET8跟踪文件 (122)26.6 本章小结 (122)第I部分 SQL语言与PL/SQL语言第1章数据库的概念与Oracle的安装本章的学习目标:●了解实体-关系模型的基本概念和方法●了解当今流行的关系数据库以及Oracle数据库的优势●熟悉Oracle数据库服务器的安装过程1.1实体-关系模型模型是对过程和对象的抽象化,经过模型可以深入了解复杂系统的主要特征。

软件工程(第4版·修订版)

软件工程(第4版·修订版)

1.7 开发团队的成 员
1.8 软件工程发生 了多大的变化
1.9 信息系统的例 子
1.10 实时系统的 例子
1.11 本章对单个 开发人员的意义
1.12 本章对开发 团队的意义
1 软件工程概述
1.15主要参考文献
1.14 学期项目
1.13 本章对研究 人员的意义
C
B
A
1.16 练习
D
01
1.1.1 问题 求解
4.19 练习
4.5 建模表示法
4.6 需求和规格说 明语言
4 获取需求
4.7 原型化需求
4.3.1 解决 冲突
1
4 获取需求
4.3 需求的类型
4.3.2 两种 需求文档
2
4 获取需求
4.8.1 需求定义
A
4.8.2 需求规格说明
B
4.8.3 过程管理和需 02
1.1.2 软件 工程师的角
色是什么
1 软件工程概述
1.1 什么是软件工程
1 软件工程概述
1.3.1 产品的 质量
1.3.2 过程的 质量
1.3.3 商业环境 背景下的质量
1.3 什么是好的软件
1 软件工程概述
1.5.1 系统 的要素
1
1.5.2 相互 联系的系统
2
1.5 系统的方法
1 软件工程概述
4.8 需求 文档
4.3 需求 的类型
4.9 确认 和验证
4.10 测量需求
4.12 信息系统的例子
4.14 本章对单个开发人 员的意义
4 获取需求
4.11 选择规格说明技术
4.13 实时系统的例子
4.15 本章对开发团队的 意义

数据库原理及应用教程第3版课后题答案

数据库原理及应用教程第3版课后题答案

第一章习题参考答案一、选择题1. C2. B3. D4. C5. D6. A7. A8. B9. D 10. B11. C 12. D 13. A 14. D 15. B16. C 17. D 18. A 19. D 20. A二、填空题1. 数据库系统阶段2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 一对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号,系名称,电话办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性第3章习题参考答案一、选择题1. B2. A3. C4. B5. C6. C7. B8. D9. A 10. D二、填空题结构化查询语言(Structured Query Language)数据查询、数据定义、数据操纵、数据控制外模式、模式、内模式数据库、事务日志NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK 约束聚集索引、非聚集索引连接字段行数定义系统权限、对象权限基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name) VALUES('990011', '王大友')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%'13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADDSGrade CHAR(10)第4章习题参考答案一、选择题1. B2. B3. D4. B5. C6. D7. B8. D9. C 10. A二、填空题1. 超键(或超码)2. 正确完备3. 属性集X的闭包X + 函数依赖集F的闭包F +4. 平凡的函数依赖自反性5. {AD→C} φ6. 2NF 3NF BCNF7. 无损连接保持函数依赖8. AB BC BD9. B→φ B→B B→C B→BC10. B→C A→D D→C11. AB 1NF12. AD 3NF第5章习题参考答案一、选择题1. B2. B3. C4. A5. C6. D7. A8. C9. D 10. D11. B 12. B 13. A 14. D 15. A二、填空题安全性控制、完整性控制、并发性控制、数据库恢复数据对象、操作类型授权粒度、授权表中允许的登记项的范围原始数据(或明文)、不可直接识别的格式(或密文)、密文事务、原子性、一致性、隔离性、持久性丢失更新、污读、不可重读封锁、排它型封锁、共享封锁利用数据的冗余登记日志文件、数据转储事务故障、系统故障、介质故障完整性登录账号、用户账号public服务器、数据库第6章习题参考答案一、选择题1. B2. C3. C4. A5. C6. B7. C8. B9. D 10. C11. D 12. B 13. B 14. D二、填空题数据库的结构设计、数据库的行为设计新奥尔良法分析和设计阶段、实现和运行阶段需求分析概念结构设计自顶向下、自底向上属性冲突、命名冲突、结构冲突逻辑结构设计确定物理结构、评价物理结构数据库加载运行和维护物理数据字典需求分析载入第7章习题参考答案一、选择题1. B2.C3.B4.D5.A二、填空题局部变量、全局变量- -、/*……*/DECLARESQL、流程控制AFTER 触发器、INSTEAD OF 触发器插入表、删除表数据库备份、事务日志备份、差异备份、文件和文件组备份简单还原、完全还原、批日志还原硬盘、磁带、管道下面是古文鉴赏,不需要的朋友可以下载后编辑删除!!谢谢!!九歌·湘君屈原朗诵:路英君不行兮夷犹,蹇谁留兮中洲。

SQL Server数据库应用 考题

SQL  Server数据库应用  考题

[试题分类]:SQL server 数据库应用1.逻辑设计主要是把概念模式转换成A.DBMS能处理的模式B.与DBMS无关的模式C.层次结构模型D.子模式答案:A题型:单项选择题知识点:第1章难度:12.物理结构设计的任务是设计数据库的A.存储格式B.存取方法C.存储结构与存取方法D.存储模式答案:题型:单项选择题知识点:第1章难度:13.数据库管理系统中用于定义和描述数据库逻辑结构的语言称为A.数据库模式描述语言(DDL)B.数据库子语言(SubDL)C.数据操纵语言(DML)D.数据结构语言答案:A题型:单项选择题知识点:第5章难度:14.以下计算机表示的信息中,不能称为"数据"的是A.人的姓名B.图形符号C.计算机程序D.文件名答案:C题型:单项选择题知识点:第1章难度:15.E-R模型转换成关系模型是在数据库设计阶段中的哪个阶段?A.概念设计B.逻辑设计C.物理设计D.实现答案:B题型:单项选择题知识点:第1章难度:16.一个世界进口公司的数据库应用系统,需要创立一个数据库用于存放定单信息,定单将被输入到一个客户/效劳器应用程序,每当有新的定单被输入,一个唯一的定单号被分配。

定单号必须递增的。

每天平均有10000条定单被输入。

现在创立了一个名Orders的表,并为表建了一个OrderNumber列。

接下来该怎么做?A.为OrderNumber列设置数据类型为uniqueidentifierB.为OrderNumber列设置数据类型为int,并为该列设置IDENTITY属性C.为OrderNumber列设置数据类型为int,创立一个用户定义函数,从表中选出OrderNumber的最大值D.为OrderNumber列设置数据类型为int,创立一个NextKey表,在表中添加一个NextOrder列,为NextOrder列设置数据类型为int,创立一个存储过程,获取和更新NextKey表的值答案:题型:单项选择题知识点:第4章难度:27.在SQL语言中,修改表中数据的命令是A.INSERTB.DELETEC.UPDATED.MODIFY答案:C题型:单项选择题知识点:第5章难度:18.关于事务的故障与恢复,以下描述正确的选项是A.事务日志是用来记录事务执行的频度B.采用增量备份,数据的恢复可以不使用事务日志文件C.系统故障的恢复只需进行重做(Redo)操作D.对日志文件设立检查点目的是为了提高故障恢复的效率答案:D题型:单项选择题知识点:第6章难度:29.在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创立A.另一个表〔table〕B.游标〔cursor〕C.视图〔view〕D.索引〔index〕答案:C题型:单项选择题知识点:第6章难度:110.某公司的人力资源数据库中包括了一个名为Employee 的表,这个表包含了机密信息,员工ID 和薪水信息。

UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)

UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)
6. UML是一种方法论吗?并简要说明理由。
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)UML是统一的标准
2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修

《数据库管理系统》word版

《数据库管理系统》word版

单位代码01学号040101086分类号密级____ ___ _文献翻译数据库管理系统概述院(系)名称信息工程学院专业名称计算机科学与技术学生姓名指导教师2008年4月15日英文译文数据库管理系统概述赫克托加西亚-莫利纳,杰夫乌尔曼,珍妮佛1.2 数据库管理系统概述从图1.1我们可以看到一个完整的数据库管理系统概况。

单框代表系统组件,而双框代表内存数据结构。

实线显示控制流和数据流,而虚线仅表示数据流。

由于这个图很复杂,我们将分几个阶段来考虑细节。

首先,在顶部,我们认为应该有两个不同的命令来源到达数据库:(1)请求或修改数据的传统用户和应用程序。

(2)数据库管理员:负责数据库结构或模型的个人或组织。

1.2.1 数据定义语言命令第二种命令是简单的进程,从图1.1的右上侧开始,我们可以看见它的路径。

例如,为一所大学搞注册的数据库管理员,或简称DBA,应该为每个学生建一张表或关系,从而说明这个学生所参加的课程以及那门课程的分数。

数据库管理员还要规定学生的成绩只能是A 、B 、C 、D和F。

这个结构和约束信息就是数据库的全部。

这表明在图1.1中,数据库管理员必须要有特殊的权力才能执行模式更改指令,因为这些指令对数据库有着深远的影响。

这些模式更改数据库定义语言指令(“DDL”代表“数据定义语言”)是由数据库定义语言处理器解析,并传递给执行引擎,经过搜索/存档/记录管理,再到元数据,即模型信息数据库。

1.2.2 查询处理概述与数据库管理系统的绝大部份交互都是沿着图1.1左侧的路径。

用户或应用程序启动一些行为,并不会影响数据库的模式,但可能会影响到数据库的内容(如果是一个修改命令行为),或将从数据库中提取数据(如果是一个查询行为)。

1.1节讲过,用这些命令描述的语言称为数据操纵语言(即DML),说白了就是查询语言。

我们可以使用很多数据操纵语言,但是在范例1.1 中所提到的那些数据查询语言,是目前最常用的。

DML语句由两个独立的子系统来处理,其过程如下:查询回复查询就是利用查询编译器进行解析和优化。

第十三章 沟通

第十三章 沟通

第十三章沟通习题一、填空题1.沟通是借助一定手段把可理解的信息、思想和情感在两个或两个以上的个人或群体中的传递或交换的过程。

2.从表面上看,沟通就是传递信息的过程;实际上,管理学意义上的沟通是一个复杂的过程,它包含了发送者、接受者、载体、编码和解码这五个要素。

3.按照功能划分,沟通可以分为工具式沟通和感情式沟通。

4.按照行为主体来划分,沟通可分为个体间沟通和群体间(或团队间)沟通。

5.组织中的个体间沟通是指组织中的个体成员间相互传递信息以促成行为与目标相互协调并与组织目标相一致的过程。

6.对团队沟通的研究集中在团队沟通集权的程度和团队任务的性质两个方面。

7.有效沟通,简单地说就是传递和交流信息的可靠性和准确性,实际上还表示组织对内外噪音的抵抗能力。

8.信息来源的可靠性由诚实、能力、热情和客观四个因素所决定。

9.无论是对组织中沟通还是组织间沟通,有效沟通的实现取决于对沟通技巧的开发和改进。

10.沟通是为了降低组织的管理成本,进而降低组织间的交易成本。

11.谈判是双方或多方为实现某种目标就有关条件达成协议的过程。

12.谈判有两种基本方法零和谈判和双赢谈判。

13.影响沟通的人际因素主要包括沟通双方的相互信任、信息来源的可靠程度和发送者与接受者之间的相似程度。

14.影响有效沟通的个人因素包括接受的有选择性和沟通技巧的差异.15.影响沟通效果的结构因素主要包括地位差别、信息传递链、团体规模和空间约束。

16.影响沟通效果的技术因素主要包括语言、非语言暗示、媒介的有效性和信息过量。

17.按照是否进行反馈,沟通可分为单向沟通和双向沟通。

18.团队是两个或两个以上的个体相互作用和协作以便完成组织预制的某项特别目标的单位。

19.集权沟通网络对简单问题能够较快解决;但对复杂问题而言,分权沟通网络的解决速度就较快。

20.企业经营战略观念的核心特征是企业分析的外在性,即对企业的市场力量分析主要从企业的环境出发。

21.沟通的目的是通过相互间的理解和认同来使个人和/或群体间的认知以及行为相适应。

ORACLE参考手册

ORACLE参考手册

目录第一章查询基础 (1)1.1 入门语句 (1)1.2 语句分类 (1)1.3 关键字 (2)1.3.1 选择语句select (2)1.3.2 算术表达式+ - * / (2)1.3.3 连接运算符|| (2)1.3.4使用字段别名as (2)1.3.5是否为空值is null、is not null (2)1.3.6去重distinct (2)1.3.7排序order by (2)1.3.8 比较> < <>(或!=) between and (2)1.3.9属于(不属于)某个范围in、not in (2)1.3.10模糊查询like (2)1.3.11逻辑运算符or and not (3)第二章单行函数 (4)2.1 字符函数 (4)2.1.1 upper字母大写 (4)2.1.2 lower 字母小写 (4)2.1.3 initcap 格式化字符串 (4)2.1.4 concat 连接字符串 (4)2.1.5 substr 截取子串 (4)2.1.6 length 获取长度 (4)2.1.7 replace 替换 (4)2.1.8 instr 查找字符位置 (4)2.1.9 lpad 左侧补齐 (4)2.1.10 rpad右侧补齐 (5)2.1.11 trim 去掉左右空格 (5)2.2.1 round 四舍五入 (5)2.2.2 mod 取模 (5)2.2.3 trunc 舍掉 (5)2.3 日期函数 (5)2.3.1 months_between 月份差 (5)2.3.2 add_months 添加月份 (5)2.3.3 next_day 下一个日期 (5)2.3.4 last_day 当月最后一天 (6)2.3.5 trunc取具体日期 (6)2.4 转换函数 (6)2.4.1 to_char字符 (6)2.4.2 to_number 数字 (6)2.4.3 to_date 日期 (6)2.5 通用函数 (6)2.5.1 nvl 空值替换 (6)2.5.2 nvl2 拓展空值替换 (6)2.5.3 nullif 是否相等 (7)2.5.4 coalesce 依次取值 (7)2.5.5 case 选择 (7)2.5.6 decode 选择 (7)第三章分组函数 (8)3.1 count 总行数 (8)3.2 avg 平均值 (8)3.3 max 最大值 (8)3.4 min 最小值 (8)3.5 sum 总和 (8)3.6 group by 分组 (8)3.7 having 条件 (8)第四章多表查询 (9)4.2 等值/非等值连接equijoin/non-equijoin (9)4.3 自连接self join (9)4.4 左外连接left outer join (9)4.5 右外连接right outer join (9)4.6 满外连接full join (9)4.7 集合操作 (10)4.7.1 并集union (10)4.7.2 并集union all (10)4.7.3 交集intersect (10)4.7.4 差集minus (10)第五章子查询 (11)5.1 单行子查询 (11)5.2 多行子查询 (11)5.3 topN查询 (11)5.4 分页查询 (11)5.5 exists 判断执行 (12)第六章高级查询 (13)6.1 dbms_random 随机数 (13)6.1.1 value() 两值之间随机数 (13)6.1.2 random() 整形随机数 (13)6.1.3 string('parameter',length) 随机字符串 (13)6.2 nulls last/first 空值排序 (13)6.3 over 显示序列 (13)6.3.1 row_number() over() (13)6.3.2 rank() over() (13)6.3.3 dense_rank()over() (14)6.3.4 max/min() over() (14)6.3.5 sum() over() (14)6.3.6 lag/lead() over() (14)第七章数据类型 (15)7.1 varchar2(size) nvarchar2(size) (15)7.2 char(size) nchar(size) (15)7.3 number(p,s) (15)7.4 date (15)7.5 long (15)7.6 blob clob (15)第八章改变表结构 (16)8.1 创建表 (16)8.1.1 创建独立表 (16)8.1.2 创建有关联表 (16)8.2 添加字段 (16)8.3 修改字段 (16)8.4 删除字段 (16)8.5 清空表数据 (16)8.6 重命名表 (16)8.7 删除表 (16)第九章改变数据结构 (17)9.1 insert 插入 (17)9.2 update 更新 (17)9.3 delete 删除 (17)9.4 merge 插入更新 (17)第十章约束 (18)10.1 not null 非空约束 (18)10.2 primary key 主键约束 (18)10.3 unique 唯一约束 (18)10.4 check 条件约束 (18)10.5 foreign key 外键 (19)10.6 on delete cascade 级联删除 (19)10.7 删除约束drop constraint (20)10.8 启用约束enable constraint (20)10.9 禁用约束 (20)10.10 查看约束 (20)第十一章视图 (21)11.1 创建视图 (21)11.2 高级视图 (21)11.3 查询视图 (21)11.4 删除视图 (21)第十二章索引 (22)12.1 创建索引 (22)12.2 删除索引 (22)12.3 查询索引 (22)第十三章序列和同义词 (23)13.1 创建序列 (23)13.2 nextval、currval (23)13.3 删除序列 (24)13.4 同义词 (24)第十四章PL/SQL (25)14.1 pl/sql块 (25)14.2 Loop循环 (26)14.3 while循环 (27)14.4 for循环 (27)14.5 if语句 (28)14.6 if...else语句.. (28)14.7 if..elsif..else语句 (29)14.8 goto语句 (29)第十五章游标和函数 (30)15.1 游标 (30)15.2 函数 (31)第十六章存储过程 (32)16.1.1 参数类型in (32)16.1.2 参数类型in out (33)16.1.3 参数类型out (33)16.2 删除存储过程 (34)16.3 与函数的区别 (34)第十七章触发器 (35)17.1 语句触发器 (35)17.1.1 before语句触发器 (35)17.1.2 after语句触发器 (35)17.2 行触发器 (36)17.2.1 before行触发器 (36)17.2.2 after行触发器 (37)17.3 显示触发器信息 (38)17.4 禁止触发器 (38)17.5 激活触发器 (38)17.6 禁止或激活表的所有触发器 (38)17.7 重新编译触发器 (38)17.8 删除触发器 (38)第十八章用户管理 (39)18.1 创建用户 (39)18.2 删除用户 (39)18.3 管理员授权 (39)18.4 撤销权限 (40)18.5 锁住用户 (40)18.6 密码失效 (40)18.7 查看权限 (40)18.8 权限传递 (40)18.9 角色 (40)第十九章备份恢复数据导入 (41)19.2 还原 (41)19.3 数据导入 (41)19.4 使用PLSQL DEV进行导出/导入 (42)附录A:PLSQL DEV快捷键 (43)附录B:ORACLE的安装 (44)附录C:SQL优化 (53)附录D 补充内容 (55)第一章查询基础1.1 入门语句普通用户连接:conn scott/orcl@ORCL超级管理员连接:conn sys/orcl as sysdba登录:sqlplusdisconnect; 断开连接Save c:\ 1.txt 把SQL存到文件Ed c:\ 1.txt 编辑SQL语句@ c:\ 1.txt 运行SQL语句Desc emp; 描述Emp结构Select * from tab; 查看该用户下的所有对象Show user; 显示当前用户如果在sys 用户下:查询Select * from emp;会报错,原因:emp是属于scott,所以此时必须使用:select * from scott.emp;/ 运行上一条语句查询所有表:select table_name,owner from all_tables where owner='SCOTT'查询字段:select * from all_tab_columns where table_name='EMP'查询索引列:select * from sys.all_ind_columns where table_name='EMP'查询现有的索引:select * from user_indexes索引建立在哪些字段上:select * from user_ind_columns查询约束:select * from all_constraints where table_name='EMP'描述数据字典视图:select table_name ,comments from dictionary where table_name like '%TABLE%'1.2 语句分类DML语句(数据操作语言)Insert、Update、Delete、MergeDDL语句(数据定义语言)Create、Alter、Drop、TruncateDCL语句(数据控制语言)Grant、Revoke事务控制语句Commit、Rollback、Savepoint1.3 关键字1.3.1 选择语句selectselect * from emp where deptno=101.3.2 算术表达式+ - * /select sal+comm from emp1.3.3 连接运算符||可连接两个或多个字符select 'Dear '||ename from emp1.3.4使用字段别名asselect empno as userNo,ename as userName from emp1.3.5是否为空值is null、is not nullselect * from emp where comm is not null1.3.6去重distinct如果distinct后面是多个参数,则为多个参数的去重select distinct job,comm from emp(job和comm的组合相同时去重)1.3.7排序order byasc升序(默认)desc 降序select * from emp order by ename1.3.8 比较> < <>(或!=) between andselect * from emp where comm > sal1.3.9属于(不属于)某个范围in、not inselect * from emp where job not in('SALESMAN','CLERK')1.3.10模糊查询likeselect * from emp where ename like '%A%'%表示零或多个字符_表示一个字符对于特殊符号可使用ESCAPE 标识符来查找select * from emp where ename like '%*_%' escape '*'上面的escape表示*后面的那个符号不当成特殊字符处理,就是查找普通的_符号1.3.11逻辑运算符or and notselect * from emp where sal > 1200 and comm <1000第二章单行函数2.1 字符函数2.1.1 upper字母大写select upper('fymod') from dual2.1.2 lower 字母小写select * from emp where lower(ename)='allen'2.1.3 initcap 格式化字符串会将首字母大写,其余字母小写select initcap(ename) from emp2.1.4 concat 连接字符串select concat('Dear ',ename) from empconcat只能用于两个字符的连接,而|| 可以连接两个或者多个字符2.1.5 substr 截取子串参数个数如果是两个,则截取到末尾,如果为三个,第三个参数为截取个数。

SQLServer2008数据库应用教程课后答案

SQLServer2008数据库应用教程课后答案

SQLServer2008数据库应⽤教程课后答案第1章数据库基础⼀、单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D11.C 12.A 13.C 14.B 15.A16.B 17.A 18.D 19.B 20.B21.A; D 22.A 23.C 24.D 25.B26.B 27.B 28.D 29.B 30.B⼆、填空题1.概念;数据2.属性3.码4.⼀对⼀联系;⼀对多(或多对⼀)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;⽤户定义的;实体;参照10.空植11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运⾏和维护阶段12.准确了解并分析⽤户对系统的要求,尤其是⽤户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应⽤系统的⽬标,产⽣⽤户和设计者都能接受的需求说明书,做为下⼀步数据库概念结构设计的基础。

13.将需求分析得到的⽤户需求抽象为信息结构即概念模型。

14.将概念结构进⼀步转化为某⼀DBMS⽀持的数据模型,并对其进⾏优化。

15.为逻辑数据模型选取⼀个最适合应⽤环境的物理结构,包括数据库在物理设备上的存储结构和存取⽅法。

三、指出以下各缩写的英⽂意思和中⽂意思1.DB:DataBase2.DBMS:Database Management System3.RDBMS:4.DBS:DataBase System5.DBA:Relational Database Management System6.NF:Normal Form7.DDL:Data Definition Language四、按题⽬要求回答问题1.答:2.答:3.答:(1)关系R是2NF。

因为R的候选码为课程名,⽽课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在⾮主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。

UML选择、填空

UML选择、填空

一、填空题1、软件对象可以这样定义:所谓的软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。

2、类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。

3、面向对象程序的基本特征是抽象、封装、继承和多态。

4、在UML中主要包括的视图为静态视图、用例视图、交互视图、状态机视图、活动视图、物理视图和模型管理视图。

5、UML图包括:用例图、类图、状态图、序列图、活动图、构件图和部署图。

6、用例图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。

一个用例是系统的一个功能单元,是参与者与系统之间进行的一次交互作用。

7、状态机视图是通过对象的各种状态建立模型来描述对象随时间变化的动态行为,并且它是以独立的对象为中心进行描述的。

8、用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系,以及系统内用例之间的关系。

9、在UML中定义了4种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。

10、使用Rational Rose建立的Rose模型中包括4种视图,分别是用例视图、逻辑视图、构件视图和部署视图。

11、在用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在用例视图中添加顺序图、协作图、活动图和类图等。

12、逻辑视图关注系统如何实现用例中所描述的功能,主要是对系统功能性需求提供支持,即系统应该提供的功能。

13、构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系,包含模型代码库、执行文件、运行库和其他构件等信息。

14、部署视图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理节点上的物理分布,而在分析和设计中使用的构架视图。

15、Rational统一过程以一种能够被大多数项目和开发组织适应的形式建立起来,其所包含的6项最佳实践为:迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证、软件变更控制。

对象约束语言简称OCL

对象约束语言简称OCL

对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。

OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

对象约束语言概述对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。

OCL具有如下特点:1、OCL是一种精确的,无二义性的语言2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。

4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。

5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。

标准OCL类型OCL预定义的标准类型定义了一组基本类型和集合类型。

OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。

集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。

这些标准型是OCL表达式的组成部分。

OCL标准型的层次结构如下:OCL表达式OCL表达式对于一个OCL类型求值。

OCL表达式有以下特点:1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。

2、OCL表达式可以附加在操作上。

3、OCL表达式可以指定附加在模型元素上的监护条件。

4、OCL表达式的计算顺序是从左到右。

5、OCL表达式既可以使用基本类型又可以使用集合类型。

用OCL表达对象性质约束OCL表达式可以附加在模型元素或模型元素的属性和操作上表达一个约束条件。

精确域模型的需求让我们拿系谱树形结构作为一个范例,从图 1 之中的图表开始。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
本章学习要点:
了解OCL的概念 理解OCL的结构 掌握OCL语法 掌握三种固化类型 掌握OCL数据类型和运算符 掌握let和def的功能和作用 理解集合类型 掌握并应用对集合操作 熟悉OCL标准库
2
13.1 OCL概述 概述
UML图(例如类图)通常不够精细,无法提供与规范有 关的所有相关部分.这其中就缺少描述模型中关于对象的附 加约束.这些约束常常用自然语言描述.而实践表明,这样 做经常造成歧义.为了写出无歧义的约束,已经开发出几种 所谓的"形式语言".传统上的形式语言,缺点是仅适合于 有相当数学背景的人员,而普通商务或系统建模者则难以使 用. OCL的出现解决了这一问题,它是一种保留了易读易写 特点的形式语言.OCL不仅用来写约束,还能够用来对UML 图中的任何元素写表达式.每个OCL表达式都能指出系统中 的一个值或者对象.OCL表达式能够求出一个系统中的任何 值或者值的集合,因此它具有了和SQL同样的能力,由此也 可得知OCL既是约束语言,同时也是查询语言.
3
13.2 OCL结构 结构
OCL在两个层次上共同定义对象 约束语言,一个是抽象语法(元模型 ),另一个是具体语法.元模型定义 OCL概念和应用该概念的规则,具体 语法则真正用于在UML模型中指定约 束和进行查询.
4
13.2.1 抽象语法
抽象语法指的是OCL语言定义的概念层,在该层中 抽象语法解释了类,操作等内容的元模型.例如, 类被定义为"具有相同的特征,约束和语义说明的 一组对象",并在该层将类解释为可与任何数目的 特性(或属性),操作,关系甚至嵌入类相关联. 抽象语法只是定义了相类似的元模型,并没有创建 一个具体的模型或对象. OCL要求清楚地区分OCL抽象语法和其他自抽象语 法派生的所有具体语法.抽象语法还支持其他约束 语言的发展.正如基于MOF(Meta Object Facility ,元对象设施标准)的UML基础结构元模型支持各 种专业领域的建模,例如软件建模的UML语言,数 据仓库领域建模的CWM语言等.
12
13.5.2 对操作约束建模
前面介绍了使用前置条件和后置条件对操作进 行约束建模.前置条件表示为当操作被激发时 输入参数和模型状态的可接受值;后置条件表 示操作完成时必须满足的条件,它表示为操作 完成时检测该操作的结果值和模型的状态.使 用前置条件和后置条件一般形式如下所示: context operateName(parameters) :return pre:constraint post:constraint
10
13.5 深入固化类型
前面曾经简单要介绍固化类型的基本 语法知识.本节将进一步讲解有关三种固 化 类 型 invariant , pre-condition 和 postcondition约束的更多知识.
11
13.5.1 属性约束建模
以属性的约束表示为不变量,不变量表达式是通 过引用模型的元素,并使用逻辑运算符和算术运算符 来构造,表达式内创建的引用可以在let和def语句中再 次使用.在计算OCL表达式时,必须引入仅在表达式 中使用的中间值.使用let表达式可以定义变量,通过 冒号赋予数据类型,甚至可以使用通过等号运算符赋 予初始值.一旦该变量被定义,就可以在表达式的其 他地方使用.当表达式完成时,该变量不再可使用. 也就是说表达式规定了该变量的使用范围,变量只在 对其进行定义的表达式内可用.以下实例中, legthOfEmployment仅在context Employee不变式中 可用.
的方法为表定义主键.
6
13.3 OCL表达式 表达式
OCL表达式用于一个OCL类型的求值,它的语法用扩展的巴 斯科范式(EBNF)定义.在EBNF中,"|"表示选择,"? "表示可选项,"*"表示零次或多次,"+"表示一次或多 次.OCL基本表达式的语法用EBNF定义如下: PrimaryExpression:=literalCollection | literal | pathName time Expression ? FeatureCallparameters? |"("expression")" | ifExpression Literal:=<string>|<number>|"#"<name> timeExpression:="@"<name> featureCallparameters:="("(declarator)?(actualParameterLi st)?")" ifExpression:="if" expression "then" expression "else" expression "endif"
5
13.2.2 具体语法
与面向规则的语法相反,具体语法(即模型层语法)描述代表现实 世界中一些实体的类,它应用抽象语法的规则来创建可以在运行时 段计算的表达式.OCL表达式与类元相关联,应用于该类元自身或 者某个属性,操作或参数.不论哪种情况,约束都是根据其位移( replacement),上下文类元(contextual classifier)和OCL表达式 的自身实例(self instance)来定义. 位移 表示UML模型中使用OCL表达式所处的位置,即作为依附于某 个类元的不变式,依附于某个操作的前置条件或依附于某个参数的 默认值. 上下文类元 定义在其中计算表达式的名字空间.如,前置条件的上 下文类元是在其中定义该前置条件的操作所归属的那个类.也就是 说该类中所有模型元素(属性,关联和操作)都可以在OCL表达式 中被引用. 自身实例 自身实例是对计算该表达式对象的引用,它总是上下文类 元的一个实例.也就是说,OCL表达式对该上下文类元每个实例的 计算结果可能不同.因此,OCL可以用于计算测试数据.使用如下所示
13.6.2 操作集合
为了便于操作集合,OCL加定义了一些操作,这里只给 出一些常用且重要的操作来示例,更多具体的操作会在 OCL的标准库中介绍.操作如下所示: select 按照一定的规则选择选取符合规则的项,组成一 个新的集合. reject 从集合中选择不满足规则的项,组成一个新的集 合. forAll 指定一个应用于集合中每个元素的约束. exists 确定某个值是否存在于集合中的至少一个或多个 成员中. isEmpty 操作判断集合中是否有元素. count 判断集合中等于count参数的元素个数,并返回该 数值. iterate 访问集合中的每个成员,对每个元素进行查询和 计算.
13.7 使用消息
OCL支持对已有操作的访问,也就是说OCL可 以操作信号和调用信号,来发送消息.针对信 号的操作,OCL提供了三种机制: 第一种机制"^" "^"为hasBeenSent已经发送 的消息.该符号表示指定对象已经发送了指定 的消息. 第二种机制OclMessage OclMessage是一种 容器,用于容纳消息和提供对其特征的访问. 第三种机制"^^" 它是已发送符号"^"的增强 形式,允许访问已经发送消息的集合,所有的 消息被容纳在OclMessage中.
13.8 元组
元组是对一组数据元素,如文件中的一个记录 或数据库中的一行等内容的定义,每个元素被 赋予名称和类型.元组可以使用字符或基于表 达式的赋值来创建.在OCL中,元组是使用被 花括号包围的一系列"名称-类型"对和可选值 来定义的,其定义形式如下所示: Tuple{name:String= 'Jim',age:Integer=23} 元组只是将一组值集合在一起的一种途径,然 后元组必须被赋予一个变量.以下表达式使用 def表达式来创建一个代理类元上下文内叫 sales的新属性.
13.9 OCL标准库 标准库
OCL标准库(Standard Library)定义用于开成OCL表达 式的所有可用的OCL类型,每种类型都有一组可用于该 类型对象的操作,有时还会有属性.OCL中预定义的标 准类型包括基本类型和集合类型,OCL的标准类型分布 呈现一种层次结构.
13.9.1 OclVoid语法
OCL指定了每一个约束都必须有 一个上下文.上下文(context)指定了 哪一个项目被约束.OCL是一个类型化 的语言,因此数据类型扮演了重要角色 ,如高级语言C++,Java一样,也有多 种数据类型.
8
13.3.1 固化类型
一个约束就是对一个(或部分)面向对象 模型或者系统的一个或者一些值的限制. UML类图中的所有值都可以使用OCL来约 束.约束的应用类似于表达式,在OCL中 编写的约束上下文可以是一个类或一个操 作.其中需要指定约束的固化类型,而约 束的固化类型可以由以下三项组成: invariant pre-condition post-condition
13
13.6 使用集合
在OCL表达式的许多结果包含不止一个值,允许 存在多个值被OCL称为Collection的一个对象列 表.OCL中共定义了四种类型的对象列表,分别 是:Collection(集合),Set(集),Bag(袋 子)和Sequence(序列).
13.6.1 创建集合
集合可以通过字符显式地创建,创建集合时只 需要写出创建集合的类型名称,后跟以列表值 ,各值项使用逗号隔开,并被花括号包括.创 建集合如下所示: Set{1,5,6,99} Set{ 'Jim', 'Tim', ' xy'} Sequence{1,3,94,0,1,3} Sequence{ 'Jim', 'Tim', ' Jim'} Bag{1,2,4,5,4} Bag{ 'Jim', 'Tim', ' Tim'}
相关文档
最新文档