还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库原理实验指导书东北林业大学信息与计算机工程学院信息管理与信息系统专业目录1实验环境………………………………………………………………………
11.1实验环境简介………………………………………………………………
11.2实验中常用的基本的SQL语句……………………………………………42Oracle10g数据库简介…………………………………………………………
42.1oracle10g的新特点………………………………………………………
42.2Oracle10g的优越性………………………………………………………72.3服务器和客户机的网络环境………………………………………………
92.
3.1服务器连接客户机……………………………………………………
92.
3.2客户机连接服务器………………………………………………………
92.4数据库服务器的体系结构…………………………………………………
102.
4.1进程结构………………………………………………………………
102.
4.2内存结构………………………………………………………………
112.
4.3数据库的逻辑结构……………………………………………………
122.
4.4数据库的存储结构……………………………………………………
142.
4.5数据库服务器的总体结构……………………………………………
142.5ORACLE的数据类型………………………………………………………143实验内容……………………………………………………………………16实验一数据定义和数据更新………………………………………………16实验二数据查询……………………………………………………………16实验三嵌套查询和视图操作………………………………………………17实验四SQLServer的安全性和完整性控制…………………………………17实验五数据库应用系统的设计……………………………………………18第一部分实验环境
1.1实验环境简介
1、服务器环境操作系统windows2000advancedserver数据库管理系统Oracle10gforNT数据库实例名test服务器ip:
222.
27.
166.
1172、客户端环境操作系统windows2000InternetExplorer
5.0以上
3、连接数据库服务器在IE地址栏内输入网址http://
222.
27.
166.117:5561/isqlplus/,就可以运行OracleiSQL*Plus程序访问数据库服务器程序界面如图1-1所示图1-1iSQL*Plus运行窗口这时我们需要输入用户名和口令我们上机实验的用户名为xg501-xg535,xg601-xg635即每位同学专业加上在班级名单上的序号,就是每个同学的用户名例如某位同学是信管专业5班的15号,这位同学的用户名就是xg515口令与用户名相同输入用户名和口令后单击“登录”按钮,成功连接数据库如图1-2所示,用户名或者密码错误如图1-3所示图1-2登陆成功图1-3登陆失败成功登录后就可以在文本框区域输入命令,单击“执行”按钮,执行结果显示在下方如图1-4所示图1-4SQL命令执行示例
4、测试本计算机是否与服务器处于连通的状态
(1)在“开始”菜单中选择“运行”命令输入PING
222.
27.
166.117,按“确定”按钮,如图1-5所示图1-5测试服务器连接
(2)出现如图1-6所示界面则表明网络已经连通注意实际运行时图中的ip地址应为
222.
27.
166.117图1-6网络已经连通
1.2实验中常用的基本的SQL语句
1、查询表结构SQLdesc表名;
2、显示当前连接用户SQLshowuser;
3、查看系统拥有哪些用户SQLselect*fromall_users; 4、查询当前用户下所有对象SQLselect*fromtab;
5、回滚事务SQLroll;SQLrollback;
6、提交事务SQLcommit;
7、查看当前用户下所有索引select*fromuser_indexes;第二部分Oracle10g数据库简介Oracle数据库10g是第一个专门设计用于网格计算的数据库,在管理企业信息方面最灵活和最经济高效它削减了管理成本,同时提供最高的服务质量除极大地提高质量和性能以外,Oracle数据库10g还通过简化的安装、大幅减少的配置和管理需求以及自动性能诊断和SQL调整,显著地降低了管理IT环境的成本这些及其他自动管理功能提高了DBA和开发人员的生产效率
2.1oracle10g的新特点
一、性能与扩展能力
1、对新的架构支持对Intel64位平台的支持支持infiniband极大地改进了多层开发架构下的性能和可扩展能力新的版本也借用了Windows操作系统对Fiber支持的优势
2、高速数据处理能力在这个版本中,一个类型的表对象被引入该表结构对大量插入和解析数据很有益处这个表结构对FIFO的数据处理应用有着很好的支持这样的应用在电信、生产应用中常常能够用到通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用
3、RACworkload管理一个新的服务框架使得管理员作为服务来设置、管理监视应用负载
4、针对OLAP的分区通过对哈希分区的全局索引的支持可以提供大量的并发插入的能力
5、新的改进的调度器Scheduler引入了一个新的数据库调度器,提供企业级调度功能这个调度器可以使得管理员有能力在特定日期、特定时间调度Job还有能力创建调度对象的库能够和既有的对象被其他的用户共享
二、可管理性这个版本的Oracle的一个引人注目之处就是管理上的极大简化大量复杂的配置和部署设置被取消或者简化常见的操作过程被自动化对不同区域的大多数调整和管理操作的到简化
1、简化的数据库配置与升级提供了预升级检查能力,有效地减少升级错误去除了了很多和数据库配置有关的任务或者对其加以自动化在初始安装的时侯,所有数据库都被预配置包括在OEM环境中而无需建立一个管理资料库补丁程序可以自动标记并自动从OracleMetalink下载
2、自动存储管理新版本的数据库能够配置成使用Oracle提供的存储虚拟层(StorageVirtualizationLayer自动并简化数据库的存储管理员现在可以管理少数的磁盘组而无需管理数千个文件--自动存储管理功能可以自动配置磁盘组,提供数据冗余和数据的优化分配
3、自动的基于磁盘备份与恢复10G中极大的简化了备份与恢复操作这个改进被称作DiskbasedRecoveryArea,可以被一个联机DiskCache用来进行备份与恢复操作备份可以调度成自动化操作,自动化优化调整备份失败的时侯,可以自动重启,以确保Oracle能够有一个一致的环境使用
4、应用优化以前的版本中,DBA更多时候要手工对SQL语句进行优化调整这里引入了一些新的工具,从此DBA无需手工做这些累人的事情这样的说法似乎有些太绝对
5、自动化统计收集为对象自动化收集优化统计
6、自动化实例调整DBA需要干预的越来越少么好消息还是坏消息
7、自动化内存调整上一个版本对UGA能够进行自动化Tuning,这版本能够对SGA相关的参数进行调整这意味着DBA只需要对2个内存参数进行配置用户可用的总的内存数量和共享区的大小
三、高可用性的加强
1、缩短应用和数据库升级的宕机时间通过使用standby数据库允许在不同版本的standby和产品数据库间切换现有的联机重定义功能能够支持一步克隆所有相关的数据库对象
2、回闪Flashback任何错误该版本的Oracle也扩展了Flashback的能力加了一个新类型的Log文件,该文件记录了数据库块的变化这个新的Log文件也被自动磁盘备份和恢复功能所管理如果有错误发生,例如针对不成功的批处理操作,DBA可以运行FlashBack用这些beforeImages快速恢复整个数据库到先前的时间点--无须进行恢复操作,这个新功能也可以用到Standby数据库中Flashback是数据库级别的操作,也能回闪整个表既有的FlashBack查询的能力也已经加强在这个版本中,管理员能够快速查看特定事务导致的变化
3、EnhancedDataGuardInfrastructure
4、安全的加强VPD得到了改进希望这次名字不会换成别的,支持更多的安全协议
四、DATAINTEGRATION
1、Oraclestreams这个版本也包括Oraclestreams功能、性能以及管理上的改进新功能包括对产品数据库downstreamcapture/offloadingthecapture和挖掘操作等对LONG、LONGRAW、NCLOB等数据类型支持加强对IOT/级联删除得到加强,性能也得到提升
2、DataPumpOracleDataPump--高速、并行的技术架构,能够快速的在数据库间移动数据与元数据最初的Export/Import被DataPumpExport/DataPumpImport所取代,并提供了完美粒度的对象选择性DataPump操作具有可恢复性相比Exp/Imp,有了很大的改进归档数据、逻辑备份的数据和可传输的表空间都可以用DataPump来操作这个特性和NCR的产品工具有很大的相似性(连名字都很相似),究竟功能性能会怎样,还是让我们拭目以待
五、商务智能/数据仓库和生物信息学BIOINFORMATICS
1、超大数据库的支持可支持到8E的数据量改进的存储、备份、恢复管理也对超大数据库有着很好的支持分区可以支持索引组织表
2、缩短信息周转时间新版本的Oracle提供了加强的ETL功能可以方便的构建大型数据仓库和多个数据集市一个新的变化数据捕捉的框架允许管理员能够轻易的捕捉并发布数据的变化新的CDC功能利用的是Oracle的Stream技术架构对于大数据量的转移,新版本提供了对可传输表的跨平台的支持,允许大批量数据快速从数据库上的脱离并附接到第二个数据库上
3、增强的外部表功能
4、SQLLoader的功能加强
5、增强的SQL分析能力SQL语句的功能针对BI得到了极大地增强
6、增强的OLAP分析功能Oracle内建的分析功能得到增强提供了新的基于PL/SQL和XML的接口提供了新的并行能力,以便于进行聚合和SQLIMPERT操作一些算法得到改进同时OEM能够用来监视并管理数据挖掘环境
7、BIOINFORMATICS的支持这个版本包含对BIOINFORMATICS技术的特定支持包括对Double和Float数据类型的Native支持内建的统计函数支持常见的ANOVA分析等
8、改进的数据挖掘的能力
六、扩展数据管理能力
1、XML方面的增强
2、多媒体在前面的版本中,存在着媒体文件4G的限制现在媒体文件的4G大小限制去掉了现在限制是8-128T通过SQL多媒体标准能够访问多媒体数据对更多的新的多媒体格式提供支持
3、文档和文本管理提供了自动发现未知文档的语言和字符集的功能支持新的German拼写规则Japaneseadverb等等本地分区的文本索引可以联机创建文档可以在索引创建和重建的时候插入文档服务,如高亮功能无须重建索引检索文档的能力也得到提高
七、应用开发方面的加强
1、SQL语言的加强SQL和PL/SQL对正则表达式支持激动人心的一个特性,这个特性怕是要改写很多人编程的习惯了或许能见到一条SQL语句完成更为复杂的功能这个版本还支持表达式过滤的功能
2、PL/SQL的增强最重要的当数新的PL/SQL优化编译器,提供了一个框架有效地优化编译PL/SQL程序这个版本还引入了两个新的数据库包UTL_COMPRESS、UTL_MAIL
3、全球化和Unicode的增强提供了GlobalizationDevelopmentKitGDKOracleNLS定义文件开始具有平台无关性、
4、JavaImprovements对JDBC更好的支持
八、其他的还包括OCCI和PreCompilers的改进;数据库Web服务的改进;基于Web的开发环境的加强等
2.2Oracle10g优越性当今希望取得良好效益的企业不仅需要可靠、高性能的应用为客户服务,而且必须降低运营成本,最大限度地扩大赢利空间这种情况加之这方面技术能力的短缺使得管理成本迅速攀升,甚至对企业的竞争能力构成潜在威胁针对上述情况,Oracle推出了全新一代数据库系统Oracle10g.OracleDatabase10g是第一个为企业级网格计算而设计的数据库,允许IT快速响应业务需求,在降低成本的同时,提供最高质量的服务最重要的是,它易于部署和管理
一、高效的存储技术对数据库而言,存储器是主要的资源之一OracleDatabase10g中新的自动存储管理ASM功能解决了这些挑战ASM使得OracleDatabase10g下的存储快速、廉价、且易于管理
二、高品质的服务Oracle10g解决了由计算机或数据故障引起的意外停机时间问题真正应用集群利用自动节点故障切换和负载的重新分配来防止网格中的节点故障利用Oracle10g廉价磁盘的有效利用提供了任何类型数据故障的快速恢复人为错误一般被认为是停机时间的最大原因,Oracle10g利用其大大增强的闪回功能,在人为错误修正上取得了突破
三、易于管理Oracle10g的主要价值之一是使部署和维护基于Oracle产品的解决方案的管理成本显著降低Oracle企业管理器网格控制管理网格范围的操作,包括整个软件系列的管理、供应用户、克隆数据库和补丁程序管理从最终用户的角度看,Oracle企业管理器甚至能够监控所有应用程序的性能
四、自动性能诊断为了使持续的管理变得更加容易,Oracle10g执行自动性能诊断并提出调整建议Oracle10g引进了自动负载存储AWR,它周期性地收集和存储系统活动和工作负载数据新的、称为自动数据库诊断监视器ADDM的专家诊断引擎分析这些数据在应用程序开发方面,Oracle10g能够作为WebService提供者和用户此外,Oracle10g包含带有HTMLDB的强大的本地开发工具该工具是为非编程人员提供的一个托管开发环境,允许创建以数据库为中心的web应用程序
五、数据仓库Oracle10g增强了它的数据仓库和商务智能能力,并支持实时的数据传送由于能够利用增强的OLAP分析(数据挖掘GUI和新的SQL模型特性)对核心数据执行更加多样的分析操作,提高了数据的价值这个SQL模型允许将查询结果作为多维数组集合进行处理,在数组上构建复杂的互相依赖的公式这些公式能用于复杂的数字运算应用程序(如预算和预报),且无需将数据提取到一个电子数据表中,或者执行复杂的连接与合并Oracle10g作为网络数据库,常见的有两种工作模式
2.3服务器和客户机的网络环境Oracle10g的网络环境如图2-1所示图2-1Oracle10g网络环境
2.
3.1服务器连接客户机在每个Oracle10g数据库服务器上都会运行一个特殊的程序,称为监听程序网络上有很多各种用途的数据包在流动,监听程序好比是Oracle10g数据库服务器的耳朵,它要分辨出哪些数据包是Oracle10g的管理客户机发出来的在正常安装的Oracle10g数据库服务器上,已经自动配置了监听程序
2.
3.2客户机连接服务器管理客户机上有专门的连接工具连接通信网络,向Oracle10g数据库服务器发送管理请求在安装Oracle10g管理客户机时,将进行[网络服务名]的配置[网络服务名]实际上就是一个远程数据库的别名,这个别名是任意的在管理客户机上有一个程序,叫做[命名方法]解析程序这个[命名方法]解析程序里配置了各种[命名方法]这些[命名方法告诉客户机应该如何将[网络服务名]指向具体的数据库服务器[命名方法]解析程序将[网络服务名]翻译为数据库服务器上的[监听程序]能够监听的名称后,通过网络进行传送数据库服务器上的[监听程序]监听管理请求后,发送给数据库DBMS系统进行处理管理客户机的工作原理如图2-2所示图2-2管理客户机的工作原理举个例子来加深读者的理解甲、乙两地之间通过飞机、铁路、公路都可以到达各种[命名方法],正常情况下我们就告诉乘客,3种方法都可以,你可以优先选择飞机,然后是铁路和公路而因为大雾的原因,航班不能正常起降某种[命名方法]关闭或尚未启用,就需要告诉乘客只能选择铁路或者公路[命名方法]的配置就是告诉管理客户机通过什么方法去查找[网络服务名对应的数据库服务器,然后才能向明确的数据库服务器发送连接请求[本地网络服务名]是最常用的一种[命名方法]
2.4数据库服务器的体系结构以上介绍了客户机和服务器的连接下面介绍数据库服务器的体系结构,在介绍完服务器的体系结构后,就能够理解数据库服务器是如何工作的下面首先介绍进程结构
2.
4.1进程结构Oracle10g网络环境里共有两大类进程1用户进程用户进程是在客户机内存上运行的程序,如客户机上运行的SQLplus、企业管理器等用户进程向服务器进程提出操作请求2服务器进程服务器进程是在服务器上运行的程序,接受用户进程发出的请求,根据请求与数据库通信,完成与数据库的连接操作和I/O访问有一些特别重要的服务器进程负责完成数据库的后台管理工作,称为数据库后台支持进程主要的服务器进程如表2-1所示表2-1oracle10g的主要后台支持进程名称主要作用系统监控进程SMON数据库系统启动时执行恢复性工作,对有故障数据库进行恢复进程监控进程PMON用于恢复失败的用户进程数据库写入进程DBWR将修改后的数据块内容写回数据库日志写入进程LGWR将内存中的日志内容写入日志文件归档进程ARCH当数据库服务器以归档方式运行时调用该进程完成日志归档检查点进程CPKT标识检查点,用于减少数据库恢复所需要的时间恢复进程RECO用于分布式数据库中的失败处理锁进程LCKn在并行服务器模式下确保数据的一致性快照进程SNPn进行快照刷新调度进程Dnnn负责把用户进程路由到可用的服务器进程进行处理
2.
4.2内存结构数据库服务器使用计算机的内存来存放常用的信息和所有调度运行的程序在其他条件相同的情况下,占用的内存越多,Oracle数据库的运行速度就越快,效率就越高1系统全局区SGASGA是数据库服务器为用户进程和服务器进程之间进行通信所使用的内存,所有用户进程共享SGA的内容,如图2-3所示图2-3SGA的作用2程序全局区PGAPGA是数据库服务器内存中为单个用户进程分配的专用的内存区域,是用户进程私有不能共享
2.
4.3数据库的逻辑结构Oracle10g数据库的逻辑结构主要指从数据库使用者的角度来考查的数据库的组成,如图2-4所示自下向上,数据库的逻辑结构共有6层图2-4数据库的逻辑结构数据块DataBlock1数据块,又叫逻辑块,是Oracle10g数据库输入/输出的基本单位,常用大小为2KB或4KB,与操作系统有关,在Windows2O00Sever里默认为4KB2数据区间DataExtent若干个连续的数据块构成数据区间,是数据库存储空间分配的一个逻辑单位3数据段DataSegment若干个数据区间构成数据段,Oracle10g中有4种数据段数据段:存放数据索引段:存储索引数据回滚段:存储要撤消的信息临时段:当SQL语句需要临时空间时,将建立临时段一旦执行完毕,临时段占用的空间将归还给系统回滚是保持数据一致性的一种策略当用户对数据库操作已经提交但尚未完成时数据库突然发生中断比如突然停电等,要求重新启动后的数据库能够正确恢复到事务没有提交之前的状态4逻辑对象LogicObjectOracle10g数据库中提供了丰富的逻辑对象,包括表、视图、索引、触发器、数据库链接等共有21种5表空间Tablespace为了提高数据库服务器管理和运行的效率,使用表空间这个虚拟的概念来管理Oracle10g数据库的默认表空间表2-2Oracle10g数据库的默认表空间6数据库Database一个数据库服务器上可以有多个数据库一个数据库可以有多个表空间一个表空间可以有多个表一个表可以有多个段一个段可以有多个区间一个区间可以有多个数据块
2.
4.4数据库的存储结构数据库的存储结构指逻辑结构在物理上是如何实现的,共有3层如图2-5所示图2-5数据库的存储结构1物理块物理块是操作系统分配的基本存储单位,逻辑结构中的数据块由若干个物理块构成2物理文件每个物理文件由若干个物理块组成,包括数据文件、控制文件和日志文件三类数据文件用于存放所有的数据,以DBF为扩展名日志文件记录了对数据库的所有操作,以LOG为扩展名控制文件记录了数据库所有文件的控制信息,以CTL为扩展名
2.
4.5数据库服务器的总体结构Oracle10g数据库服务器的总体结构如图2-6所示图2-6Oracle10g数据库服务器的总体结构数据库服务器由数据库管理系统和数据库构成数据库管理系统由内存结构SGA和PGA和进程结构构成用户进程通过SGA提交请求服务器进程将这些客户请求转变成对后台数据库的各种操作数据库的物理结构由数据文件、日志文件和控制文件构成支持数据库运行的服务器后台进程和分配的内存结构统称为例程Instance可以把例程理解为相对独立的逻辑上的数据库服务器
2.5ORACLE的数据类型oracle10g中常用的数据库字段类型如表2-3所示表2-3常用的数据库字段类型字段类型中文说明限制条件其它说明CHAR固定长度字符串最大长度2000bytes VARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749NCHAR根据字符集而定的固定长度字符串最大长度2000bytes NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)LONG超长字符串最大长度2G(231-1)足够存储大部头著作RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等LONGRAW可变长度的二进制数据最大长度2G同上BLOB二进制数据最大长度4G CLOB字符数据最大长度4G NCLOB根据字符集而定的字符数据最大长度4G BFILE存放在数据库外的二进制数据最大长度4G ROWID数据表中记录的唯一行号10bytes为0或1NROWID二进制数据表中记录的唯一行号最大长度4000bytesNUMBERPS数字类型P为整数位,S为小数位DECIMALPS数字类型P为整数位,S为小数位INTEGER整数类型小的整数FLOAT浮点数类型NUMBER38,双精度REAL实数类型NUMBER63,精度更高第三部分实验内容实验一 数据定义和数据更新实验目的通过本实验能够熟练应用SQL语言进行基本表和索引的定义,能够对表的结构进行修改和删除,并通过数据更新命令输入相应的数据实验要求在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码,这样才能在2个学时完成实验内容实验原理oracle10g数据库管理系统完全支持SQL,SQL中关于数据定义和数据更新的语法格式为1.定义基本表参见教材71页2.修改基本表参见教材73页3.建立与删除索引参见教材75页4.插入数据、修改数据、删除数据参见教材102-104页实验内容1.创建教材的学生-课程数据库中的三个表.定义表时请注意数据类型问题,Oracle的数据类型请参照本实验讲义2.对学生表(student)的结构用alter命令进行修改3.对以上建立的表按关键字建立索引4.输入数据数据内容参照教材,输入数据时请注意数据类型问题5.对输入的数据进行修改和删除思考题1.体会oracle数据库的数据存储方法2.比较用可视化界面与命令方式在数据的插入、修改、删除方面的优缺点实验报告要求写出创建3个表的命令,修改表结构的命令,创建索引的命令,对每个表添加2个条记录的命令,删除数据的命令实验二 数据查询实验目的通过本实验能够应用SQL语言进行简单表的数据查询、数据排序和数据连接查询操作实验要求在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码实验原理oracle10g数据库管理系统完全支持SQL,SQL中关于数据查询的语法格式为SELECT[ALL|DISTINCT]目标列表达式[目标列表达式]…FROM表明或视图名[表明或视图名]…[WHERE条件表达式][GROUPBY列名1[HAVING条件表达式]][ORDERBY列名2[ASC|DESC]];实验内容SQL中关于数据查询的语法格式为SELECT[ALL|DISTINCT]目标列表达式[目标列表达式]…FROM表明或视图名[表明或视图名]…[WHERE条件表达式][GROUPBY列名1[HAVING条件表达式]][ORDERBY列名2[ASC|DESC]];具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现1.简单查询操作#1)求数学系学生的学号和姓名#2)求选修了课程的学生学号#3)求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列#4)求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,并成绩乘以
0.8输出5)求数学系或计算机系姓张的学生的信息6)求缺少了成绩的学生的学号和课程号2.对实验一建立的学生-课程数据库中三个表进行单表查询1)查询全体学生的详细记录2)查询全体学生的姓名及其出生年份3)查询年龄不在20至23岁之间的学生姓名、系别和年龄4)查询所有姓刘的学生的姓名、学号和性别5)查询学习1号课程的学生最高分数6)查询名字中第二字为“阳”字的学生的姓名和学号7)查询选修了c3号课程的学生的学号及其成绩,查询结果按分数的降序排列#8)查询各个课程号与相应的选课人数3.连接查询操作该实验包括等值连接、自然连接、一般连接、外连接和自连接等1)查询每一门课的间接先修课即先修课的先修课2)查询每个学生选修的课程名及其成绩3)查询选修c2号课程且成绩在80分以上的所有学生思考题1.体会GROUPBY子句的用法2.体会等值连接和自然连接的区别3.体会外连接的实际效果实验报告要求写出1中前四题及3中前三题所有查询对应的命令实验三嵌套查询和视图操作实验目的通过本实验能够应用SQL语言进行多表的嵌套查询及进行基本的视图操作实验原理oracle10g数据库管理系统完全支持SQL,在SQL语言中,一个SELECT-FROM-WHERE语句成为一个查询块,将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件的查询成为嵌套查询SQL语言允许多层嵌套查询,利用嵌套查询可以增强SQL的查询能力视图是关系数据库系统的重要概念,是从一个或几个基本表导出的表,是一个虚表视图在概念上与基本表相同,通过SQL可以完成在视图上的相应数据操作实验要求在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码实验内容使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作,对视图进行定义和简单的查询及更新操作具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现1.查询与“刘晨”在同一个系学习的学生2.查询选修了课程名为’信息系统’的学生学号和姓名3.查询其他系中比计算机系某一学生年龄小的学生名单4.查询其他系中比计算机系所有学生年龄都小的学生名单5.查询选修了c1号课程的学生姓名6.查询没有选修c1号课程的学生姓名7.查询选修了全部课程的学生姓名8.建立视图,并对视图执行查询操作1)建立信息系学生的视图2)将学生的学号及其平均成绩定义为一个视图3)在信息系学生的视图中找出年龄小于20的学生4)将信息系学生视图中学号为95003的学生改名为“刘辰”思考题1.体会视图的消解过程2.对视图的更新有哪些限制?3.体会引入视图的作用实验报告要求写出1-3题及第8题所对应的命令实验四SQLServer的安全性和完整性控制实验目的通过本实验能够熟练应用SQL语言进行用户权限的授予和回收,并能定义实体完整性,参照完整性及用户定义的完整性的定义,体会SQLServer数据库系统在安全性和完整性保护方面的特性实验原理实验要求在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码实验内容1.两个用户相互配合完成以下实验内容1)用户xg501把查询Student表权限授给用户xg502,xg502执行相应的查询a查询xg501用户的全体学生的详细记录b查询xg501用户的年龄不在20至23岁之间的学生姓名、系别和年龄c查询xg501用户的所有姓刘的学生的姓名、学号和性别d查询xg501用户的名字中第二字为“阳”字的学生的姓名和学号2xg501把对Student表和Course表的全部权限授予用户xg5023把对表SC的查询权限授予所有用户并以下查询a查询xg501用户的选修了c3号课程的学生的学号及其成绩,查询结果按分数的降序排列b查询xg501用户的各个课程号与相应的选课人数4将Student表和修改学生学号的权限授给用户xg5025从用户xg501把授予出的的权限一一收回2.以下操作每个同学独立完成1建立部门表DEPT,要求部门名称Dname列取值唯一,部门编号Deptno列为主码2建立学生登记表stuinfo,要求学号在900000至999999之间,年龄29性别只能是’男’或’女’,姓名非空3建立职工表EMP,要求每个职工的应发工资不得超过3000元应发工资实际上就是实发工资列Sal与扣除项Deduct之和4)对上述新建立的表,每个表输入3条数据,其中1条数据符合完整性约束,2条违反约束条件的,验证和体会Oracle完整性思考题1.建立课程的实体完整性,和课程号cno的参照完整性2.建立年龄的域完整性,约束条件为“年龄在15到30岁之间”实验报告要求写出每题相应的命令实验五数据库应用系统的设计实验目的通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握本书中所讲解的内容实验要求在进行本实验之前,应熟练课程内容,在上机之前做好实验准备实验报告要求报告原则上不少于3000字,需在封面注明设计选题、班级、姓名、学号及课程设计日期、地点,其正文至少包括如下几个方面的内容
1.需求分析1按所选题目要求用自顶向下的结构化分析方法,抽象出该系统的最高数据流图(参考教材图
12.5)2设计相应的数据字典(参考教材P227)
2.概念模型设计1局部应用分E-R图设计2视图集成,完成基本E-R图设计(参考教材P233-235)
3.逻辑结构设计1将E-R图转换为数据模型(参考教材P240)2优化数据模型(参考教材P241)3设计用户子模式(参考教材P242)
4.数据库物理设计
5.数据库实现1用CREATETABLE命令定义数据库结构2用INSERT命令数据装载3编制应用程序用PB、Delphi、Java等设计界面,实现该数据库应用系统4调试程序,试运行
6.数据库运行与维护学生可根据自己的兴趣从以下课题中选择,也可以自己选择题目,经老师批准后方可进行设计
(1)人事管理系统a、系统功能的基本要求员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等员工各种信息的修改;对于转出、辞职、辞退、退休员工信息的删除;按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;对查询、统计的结果打印输出b、数据库要求在数据库中至少应该包含下列数据表员工基本信息表;员工婚姻情况表,反映员工的配偶信息;员工学历信息表,反映员工的学历、专业、毕业时间、学校、外语情况等;企业工作岗位表;企业部门信息表
(2)工资管理系统a、系统功能的基本要求员工每个工种基本工资的设定加班津贴管理,根据加班时间和类型给予不同的加班津贴;按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;企业工资报表能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;b、数据库要求在数据库中至少应该包含下列数据表员工考勤情况表;员工工种情况表,反映员工的工种、等级,基本工资等信息;员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;员工基本信息表;员工月工资表
(3)机票预定系统a、系统功能的基本要求每个航班信息的输入每个航班的坐位信息的输入;当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;旅客在飞机起飞前一天凭取票通知交款取票;旅客能够退订机票;能够查询每个航班的预定情况、计算航班的满座率b、数据库要求在数据库中至少应该包含下列数据表航班信息表;航班坐位情况表;旅客订票信息表;取票通知表
(4)仓库管理系统a、系统功能的基本要求产品入库管理,可以填写入库单,确认产品入库;产品出库管理,可以填写出库单,确认出库;借出管理,凭借条借出,然后能够还库;初始库存设置,设置库存的初始值,库存的上下警戒限;可以进行盘库,反映每月、年的库存情况;可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询b、数据库要求在数据库中至少应该包含下列数据表库存情况表;出库单表;入库单表;出库台帐;入库台帐;借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等
(5)图书管理系统建立一个完整的图书管理系统(仅供参考,可以改变问题)首先建立以下几个表 图书(书号,书名,作者,价格,出版社,摘要) 读者(卡号,姓名,性别,单位,类型,级别) 借阅(书号,书名,卡号,借书时间,还书时间) (为方便用户操作可考虑建立一个单位至单位编号表) 书写应用程序完成一个图书管理应用系统的开发 要求有以下子系统 (a)图书和读者登记子系统要求做到实体完整性 (b)借书,还书子系统要求做到参照完整性,并考虑用户自定义完整性(如不同读者类型的借书限制册和还书日期等约束条件的实现) (c)超期图书罚款处理子系统要求有允许用户更改期限每天罚款的灵活性 (d)读者的撤消(加毕业生的情况下) (e)系统维护6学籍管理系统----由于电大学生类别和专业设置的多样性,电大学生的学籍管理历来是非常繁琐和复杂的工作进行计算机管理可以充分发挥计算机的优势,大大减轻工作人员的工作量和减少人为错误因此计算机学籍管理系统的设计课题设计要求要求系统能完成1学生注册管理包括新生录入、学生注册、学生变动等管理2教学计划管理包括教学计划的录入、修改、查询和输出3学生成绩管理包括成绩录入、校对、查询和输出4毕业管理能根据教学计划自动完成毕业班学生的学分计算、审核、输出毕业生成绩登记表和毕业生名册
(7)完成学生成绩管理系统的设计本系统需要设计4个表,加下划线的是对应表的主码具体是
①专业设置表专业编号、院名、系别、专业
②学生情况表学号、姓名、性别,出生日期、入学日期、专业编号
③课程表课程编号,课程名,学时数,学分
④学生选课表学号,课程号,选修日期,考试日期,成绩,是否重修要求⒈完成专业设置情况信息的输入、查询、修改、删除具体的处理要求是输入专业设置基本情况以直观的表格界面给出,操作者只负责输入数据,输入时必须禁止输入数据表中已有的专业编号修改专业设置基本信息以和输入界面相类似的形式,给出要修改的专业设置基本情况,因此修改之前必须先给出修改的条件,查询到有该专业设置后才能修改当修改专业编号时,如果该专业已经有学生,即在学生情况表中有该专业编号的学生时,则必须同时修改学生情况表中的记录删除专业设置基本情况以和修改类似的方法先查询出要删除的专业的基本情况如果学生情况表中有该专业的学生记录,则拒绝删除查询统计根据给定的各种具体条件(专业编号、院名、系别、专业),可以以单个条件进行查询,也可以以若干单个条件组合成任意复杂的条件进行查询在查询时必须同时给出相应的有关学生人数的统计信息在查询统计时不允许修改任何信息设计一个菜单系统,能够将上述的所有需求联接起来构成一个完整的应用系统⒉完成学生基本情况信息的输入、查询、修改、删除具体的处理要求是输入学生基本情况以直观的表格界面给出,操作者只负责输入数据,输入时必须禁止输入数据表中已有的学号修改学生基本信息以和输入界面相类似的形式,给出要修改的学生基本情况,因此修改之前必须先给出修改的条件,查询到有学生后才能修改当修改学生的学号时,如果该学生已经选修了课程,即在学生选课表中有该学生的记录,则必须同时修改学生课表中的记录删除学生基本情况,以和修改类似的方法先查询出要删除的学生基本情况查询到有该同学后才能删除和查询一样,若选课表中有该同学的选课记录,也必须同时删除查询统计根据给定的各种具体条件(学号、姓名、性别、系别、专业、入学年份),可以以单个条件进行查询,也可以以若干单个条件组合成任意复杂的条件进行查询当满足条件的同学有许多时,必须同时给出相应的统计信息,也应该能够逐个地显示每个同学的基本情况在查询统计时不允许修改学生的任何信息设计一个菜单系统,能够将上述的所有需求联接起来构成一个完整的应用系统⒊完成课程管理的各种操作,具体的处理要求是输入课程的基本信息要求是以直观的界面表格给出课程输入表格,操作者只负责输入,输入时必须禁止输入想同课程号的记录修改课程信息以和输入界面相类似的形式给出要修改的课程信息,然后才能修改因此,在修改之前必须先给出修改条件,查询到有相应的课程信息后才能修改在修改时,如果学生选课表中有选修该门课程的学生记录,则当修改课程号时必须同时修改所有的学生选课表中课程号课程成绩的查询统计应具有按课程号、课程名统计出选修改课程的人数、专业署、系别数以及平均成绩,最高成绩、最低成绩、及格通过率设计一个菜单系统,能够将上述各部分功能联起来构成一个完整的应用系统⒋完成学生选课的各种管理操作,具体的处理要求是学生选课记录的输入以直观的界面显示学生选课表格,然后输入学生选课记录学号必须是学生情况表中已有的学号,如果没有,禁止输入同样,课程号必须时课程表中已有的课程号,如果没有,禁止输入学生选课记录的修改以和输入界面相同的形式给出学生的选课记录因此,修改之前必须给出修改条件,查询到有学生选课记录后才能修改在此修改只能修改成绩和考试日期学生选课的查询与统计根据给定的各种具体条件(学号、姓名、课程号、课程名、考试日期、系别、专业,重修),可以以单个条件进行查询统计,也可以以若干单个条件组合成任意复杂的条件进行查询统计具体的统计内容是最高分、最低分、平均成绩,各个分数段的门次/人次,不及格率设计一个菜单系统,能够将上述各功能联起来构成一个完整的应用系统
(8)完成商品管理系统的设计本系统设计需要四个数据库表,加下划线的是对应表的主码具体是
①商品表商品编号、型号、名称、规格、生产厂家
②商品采购表商品编号、采购日期、采购数量、采购单价
③商品库存表商品编号、截止日期、库存数量、是否最新库存
④商品销售表商品编号、销售序号、销售日期、销售数量、销售单价要求⒈完成商品基本信息的各种管理操作,具体的处理要求是商品基本信息的输入输入时以直观的表格界面给出,操作者只负责输入,输入时必须禁止输入已有编号的商品信息商品基本信息的修改以和输入时类似的直观界面,修改前先给出修改条件,当查询到有该商品信息时才能修改,在修改时,若修改的是商品编号,则必须同时修改商品库存表,商品采购表,商品销售表中相应的商品编号商品信息查询统计根据给定的各种具体条件(商品编号、型号、名称、规格、生产厂家),可以以单个条件进行查询统计,也可以以若干单个条件组合成任意复杂的条件进行查询统计给出查询统计出各种商品的基本信息,同时应给出对应的统计信息(如按商品名称“电冰箱”查询时,就应能给出有多少种,有多少生产厂家等)一个菜单系统,能把上述各功能联系起来,构成一个完整的系统⒉完成商品采购入库的各种管理操作,具体的处理要求是商品采购入库以直观的界面给出商品采购入库表格,操作者只负责输入数据,输入时同一种商品每天只采购入库一次,采购入库的商品只能是商品表中已有的商品商品采购入库时必须同时修改商品库库存中的库存数量即同时在商品库存表中增加一条记录,增加的这条记录的截至日期就是购入日期,库存数量=已有的库存数量(若有)+购进数量商品采购查询统计根据给定的各种具体条件(商品编号、采购日期、采购数量、采购单价),可以以单个条件进行查询统计,也可以以若干单个条件组合成任意复杂的条件进行查询统计查询统计出商品的采购入库信息和对应的库存数量设计一个菜单系统,能把上述功能连起来构成一个完整的应用系统⒊完成商品销售的各种管理操作,具体的处理要求是商品销售销售的只能是商品库存表中有库存(即最新的库存量大于0)的商品,且销售数量不能超过最新的库存量每销售一次,都有一条记录输入到商品销售库中商品销售查询统计根据给定的各种具体条件(商品编号、销售序号、销售日期),可以以单个条件进行查询统计,也可以以若干单个条件组合成任意复杂的条件进行查询统计具体的统计内容是商品编号、销售序号、销售日期、总的销售数量、总的销售金额、销售利润等商品销售统计汇总定期(如一天,三天)汇总,每种商品的销售数量,销售金额(按商品编号细分),同时对每种商品(以商品编号为依据)修改商品库存表,修改商品库存表实际上是插入若干条记录(每个商品编号插入一条记录),截止日期就是汇总日期,库存数量=原有库存数量-汇总数量,原来该商品的编号的库存不是最新的,新插入的是最新的设计一个菜单系统能将上述各功能联系起来构成一个完整的系统Oracle10g个gDBMSOracle数据库文件SQL结果SQLSQL网络客户端客户端SQL计算机。