信管数据库原理及应用12123实验指导书.doc_第1页
信管数据库原理及应用12123实验指导书.doc_第2页
信管数据库原理及应用12123实验指导书.doc_第3页
信管数据库原理及应用12123实验指导书.doc_第4页
信管数据库原理及应用12123实验指导书.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理实 验 指 导 书 东北林业大学信息与计算机工程学院信息管理与信息系统专业目 录1实验环境 11.1 实验环境简介 11.2 实验中常用的基本的SQL语句 42 Oracle10g数据库简介42.1 oracle 10g的新特点 42.2 Oracle 10g的优越性 7 23服务器和客户机的网络环境 92.3.1服务器连接客户机 92.3.2客户机连接服务器 92.4 数据库服务器的体系结构 102.4.1进程结构 102.4.2内存结构 112.4.3数据库的逻辑结构 122.4.4数据库的存储结构 142.4.5数据库服务器的总体结构 142.5 ORACLE的数据类型 143 实验内容 16实验一 数据定义和数据更新 16实验二 数据查询 16实验三 嵌套查询和视图操作 17实验四 SQL Server的安全性和完整性控制 17 实验五 数据库应用系统的设计 18第一部分 实验环境1.1 实验环境简介1、服务器环境操作系统:windows 2000 advanced server数据库管理系统:Oracle 10g for NT数据库实例名:test服务器ip:172、客户端环境操作系统:windows 2000Internet Explorer 5.0以上3、连接数据库服务器在IE地址栏内输入网址:17:5561/isqlplus/,就可以运行Oracle iSQL*Plus 程序访问数据库服务器。程序界面如图1-1所示。图1-1 iSQL*Plus运行窗口这时我们需要输入用户名和口令。我们上机实验的用户名为xg501-xg535,xg601-xg635,即每位同学专业加上在班级名单上的序号,就是每个同学的用户名。例如某位同学是信管专业5班的15号,这位同学的用户名就是xg515,口令与用户名相同。输入用户名和口令后单击“登录”按钮,成功连接数据库如图1-2所示,用户名或者密码错误如图1-3所示。图1-2 登陆成功图1-3 登陆失败成功登录后就可以在文本框区域输入命令,单击“执行”按钮,执行结果显示在下方如图1-4所示。图1-4 SQL命令执行示例4、测试本计算机是否与服务器处于连通的状态 (1)在“开始”菜单中选择“运行”命令:输入PING 17,按“确定”按钮,如图1-5所示。图1-5 测试服务器连接(2)出现如图1-6所示界面。则表明网络已经连通。注意:实际运行时图中的ip地址应为 17。图1-6 网络已经连通1.2 实验中常用的基本的SQL语句1、查询表结构SQL desc 表名; 2、显示当前连接用户SQL show user;3、查看系统拥有哪些用户SQL select * from all_users;、查询当前用户下所有对象SQL select * from tab;5、回滚事务SQL roll;SQL rollback;6、提交事务SQL commit; 7、查看当前用户下所有索引select * from user_indexes;第二部分Oracle10g数据库简介Oracle 数据库 10g 是第一个专门设计用于网格计算的数据库,在管理企业信息方面最灵活和最经济高效。它削减了管理成本,同时提供最高的服务质量。 除极大地提高质量和性能以外,Oracle 数据库 10g 还通过简化的安装、大幅减少的配置和管理需求以及自动性能诊断和 SQL 调整,显著地降低了管理 IT 环境的成本。 这些及其他自动管理功能提高了 DBA 和开发人员的生产效率。2.1 oracle 10g的新特点一、性能与扩展能力 1、对新的架构支持 对Intel 64位平台的支持。支持infiniband。极大地改进了多层开发架构下的性能和可扩展能力。新的版本也借用了Windows操作系统对Fiber支持的优势。 2、高速数据处理能力 在这个版本中,一个类型的表对象被引入。该表结构对大量插入和解析数据很有益处。这个表结构对FIFO的数据处理应用有着很好的支持。这样的应用在电信、生产应用中常常能够用到。通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用。 3、RAC workload 管理 一个新的服务框架。使得管理员作为服务来设置、管理监视应用负载。 4、针对 OLAP 的分区 通过对哈希分区的全局索引的支持可以提供大量的并发插入的能力 5、新的改进的调度器( Scheduler ) 引入了一个新的数据库调度器,提供企业级调度功能。这个调度器可以使得管理员有能力在特定日期、特定时间调度Job。还有能力创建调度对象的库能够和既有的对象被其他的用户共享。二、可管理性这个版本的 Oracle 的一个引人注目之处就是管理上的极大简化。大量复杂的配置和部署设置被取消或者简化。常见的操作过程被自动化。对不同区域的大多数调整和管理操作的到简化。 1、简化的数据库配置与升级提供了预升级检查能力,有效地减少升级错误。 去除了了很多和数据库配置有关的任务或者对其加以自动化。在初始安装的时侯,所有数据库都被预配置包括在OEM环境中而无需建立一个管理资料库。补丁程序可以自动标记并自动从Oracle Metalink下载。 2、自动存储管理 新版本的数据库能够配置成使用Oracle提供的存储虚拟层(Storage Virtualization Layer)。自动并简化数据库的存储。管理员现在可以管理少数的磁盘组而无需管理数千个文件-自动存储管理功能可以自动 配置磁盘组,提供数据冗余和数据的优化分配。 3、自动的基于磁盘备份与恢复10G中极大的简化了备份与恢复操作。这个改进被称作Disk based Recovery Area,可以被一个联机Disk Cache 用来进行备份与恢复操作。备份可以调度成自动化操作,自动化优化调整。备份失败的时侯,可以自动重启,以确保 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。用这些before Images 快速恢复整个数据库到先前的时间点-无须进行恢复操作,这个新功能也可以用到 Standby 数据库中。 Flashback是数据库级别的操作,也能回闪整个表。既有的FlashBack查询的能力也已经加强。在这个版本中,管理员能够快速查看特定事务导致的变化。 3、Enhanced Data Guard Infrastructure 4、安全的加强 VPD得到了改进(希望这次名字不会换成别的),支持更多的安全协议。四、DATA INTEGRATION 1、Oracle streams 这个版本也包括Oracle streams功能、性能以及管理上的改进。新功能包括对产品数据库downstream capture/ offloading the capture 和挖掘操作等。对 LONG、LONG RAW、NCLOB等数据类型支持加强。对 IOT/级联删除得到加强,性能也得到提升。 2、Data Pump Oracle Data Pump-高速、并行的技术架构,能够快速的在数据库间移动数据与元数据。最初的 Export/Import 被 Data Pump Export/Data Pump Import所取代,并提供了完美粒度的对象选择性。Data Pump 操作具有可恢复性。相比 Exp/Imp,有了很大的改进。归档数据、逻辑备份的数据和可传输的表空间都可以用 Data Pump 来操作。 这个特性和NCR的产品工具有很大的相似性(连名字都很相似),究竟功能性能会怎样,还是让我们拭目以待。 五、商务智能/数据仓库和生物信息学(BIOINFORMATICS) 1、超大数据库的支持 可支持到8E的数据量。改进的存储、备份、恢复管理也对超大数据库有着很好的支持。分区可以支持索引组织表。 2、缩短信息周转时间 新版本的Oracle提供了加强的ETL功能。可以方便的构建大型数据仓库和多个数据集市。一个新的变化数据捕捉的框架允许管理员能够轻易的捕捉并发布数据的变化。新的CDC功能利用的是Oracle的Stream技术架构。 对于大数据量的转移,新版本提供了对可传输表的跨平台的支持,允许大批量数据快速从数据库上的脱离并附接到第二个数据库上。 3、增强的外部表功能4、SQL Loader的功能加强5、增强的SQL分析能力SQL语句的功能针对BI得到了极大地增强。 6、增强的OLAP分析功能Oracle 内建的分析功能得到增强。提供了新的基于PL/SQL和XML的接口。 提供了新的并行能力,以便于进行聚合和SQL IMPERT操作。一些算法得到改进。同时OEM能够用来监视并管理数据挖掘环境。 7、BIOINFORMATICS 的支持这个版本包含对BIOINFORMATICS 技术的特定支持。包括对Double和Float数据类型的Native支持。内建的统计函数支持常见的ANOVA分析等。 8、改进的数据挖掘的能力 六、扩展数据管理能力1、XML方面的增强 2、多媒体 在前面的版本中,存在着媒体文件4G的限制。现在媒体文件的4G大小限制去掉了(现在限制是:8-128T)。通过SQL多媒体标准能够访问多媒体数据。对更多的新的多媒体格式提供支持。 3、文档和文本管理 提供了自动发现未知文档的语言和字符集的功能。支持新的German 拼写规则 Japan ese adverb等等。 本地分区的文本索引可以联机创建。文档可以在索引创建和重建的时候插入。文档服务,如高亮功能无须重建索引。检索文档的能力也得到提高。 七、应用开发方面的加强 1、SQL语言的加强 SQL和PL/SQL对正则表达式支持。激动人心的一个特性,这个特性怕是要改写很多人编程的习惯了。或许能见到一条SQL语句完成更为复杂的功能。这个版本还支持表达式过滤的功能。 2、PL/SQL 的增强 最重要的当数新的PL/SQL优化编译器,提供了一个框架有效地优化编译PL/SQL程序。 这个版本还引入了两个新的数据库包:UTL_COMPRESS、UTL_MAIL。 3、全球化和Unicode的增强提供了Globalization Development Kit (GDK)。Oracle NLS 定义文件开始具有平台无关性、 4、Java Improvements 对JDBC更好的支持。八、其他的还包括:OCCI和Pre Compilers的改进;数据库Web服务的改进;基于Web的开发环境的加强等。2.2 Oracle 10g优越性当今希望取得良好效益的企业不仅需要可靠、高性能的应用为客户服务,而且必须降低运营成本,最大限度地扩大赢利空间。这种情况加之这方面技术能力的短缺使得管理成本迅速攀升,甚至对企业的竞争能力构成潜在威胁。针对上述情况,Oracle推出了全新一代数据库系统:Oracle 10g. Oracle Database10g是第一个为企业级网格计算而设计的数据库,允许IT快速响应业务需求,在降低成本的同时,提供最高质量的服务。最重要的是,它易于部署和管理。一、高效的存储技术对数据库而言,存储器是主要的资源之一。Oracle Database 10g中新的自动存储管理(ASM)功能解决了这些挑战。ASM使得Oracle Database 10g下的存储快速、廉价、且易于管理。二、高品质的服务Oracle 10g解决了由计算机或数据故障引起的意外停机时间问题。真正应用集群利用自动节点故障切换和负载的重新分配来防止网格中的节点故障。利用Oracle 10g廉价磁盘的有效利用提供了任何类型数据故障的快速恢复。人为错误一般被认为是停机时间的最大原因,Oracle 10g利用其大大增强的闪回功能,在人为错误修正上取得了突破。三、易于管理Oracle 10g的主要价值之一是使部署和维护基于Oracle产品的解决方案的管理成本显著降低。Oracle企业管理器网格控制管理网格范围的操作,包括整个软件系列的管理、供应用户、克隆数据库和补丁程序管理。从最终用户的角度看,Oracle企业管理器甚至能够监控所有应用程序的性能。 四、自动性能诊断为了使持续的管理变得更加容易,Oracle 10g执行自动性能诊断并提出调整建议。Oracle 10g引进了自动负载存储(AWR),它周期性地收集和存储系统活动和工作负载数据。新的、称为自动数据库诊断监视器(ADDM)的专家诊断引擎分析这些数据。在应用程序开发方面,Oracle 10g能够作为Web Service提供者和用户。此外,Oracle 10g包含带有HTML DB的强大的本地开发工具。该工具是为非编程人员提供的一个托管开发环境,允许创建以数据库为中心的web应用程序。五、数据仓库Oracle 10g增强了它的数据仓库和商务智能能力,并支持实时的数据传送。由于能够利用增强的OLAP分析(数据挖掘GUI和新的SQL模型特性)对核心数据执行更加多样的分析操作,提高了数据的价值。这个SQL模型允许将查询结果作为多维数组集合进行处理,在数组上构建复杂的互相依赖的公式。这些公式能用于复杂的数字运算应用程序(如预算和预报),且无需将数据提取到一个电子数据表中,或者执行复杂的连接与合并。 Oracle 10g作为网络数据库,常见的有两种工作模式。2.3服务器和客户机的网络环境Oracle10g的网络环境如图2-1所示。Oracle10g个g DBMSOracle数据库文件SQL结果SQLSQL网络客户端客户端SQL计算机图2-1 Oracle10g网络环境2.3.1服务器连接客户机 在每个Oracle 10g数据库服务器上都会运行一个特殊的程序,称为监听程序。 网络上有很多各种用途的数据包在流动,监听程序好比是Oracle10g数据库服务器的耳朵,它要分辨出哪些数据包是Oracle10g的管理客户机发出来的。在正常安装的Oracle10g数据库服务器上,已经自动配置了监听程序。2.3.2客户机连接服务器管理客户机上有专门的连接工具连接通信网络,向Oracle10g数据库服务器发送管理请求。 在安装Oracle10g管理客户机时,将进行网络服务名的配置。网络服务名实际上就是一个远程数据库的别名,这个别名是任意的。在管理客户机上有一个程序,叫做命名方法解析程序。这个命名方法解析程序里配置了各种命名方法。这些命名方法)告诉客户机应该如何将网络服务名指向具体的数据库服务器。命名方法解析程序将网络服务名翻译为数据库服务器上的监听程序能够监听的名称后,通过网络进行传送。数据库服务器上的监听程序监听管理请求后,发送给数据库DBMS系统进行处理。管理客户机的工作原理如图2-2所示。图2-2 管理客户机的工作原理举个例子来加深读者的理解。 甲、乙两地之间通过飞机、铁路、公路都可以到达 (各种命名方法),正常情况下,我们就告诉乘客,3种方法都可以,你可以优先选择飞机,然后是铁路和公路。而因为大雾的原因,航班不能正常起降(某种命名方法关闭或尚未启用),就需要告诉乘客只能选择铁路或者公路。 命名方法的配置就是告诉管理客户机通过什么方法去查找网络服务名)对应的数据库服务器,然后才能向明确的数据库服务器发送连接请求。 本地网络服务名是最常用的一种命名方法。2.4 数据库服务器的体系结构 以上介绍了客户机和服务器的连接。下面介绍数据库服务器的体系结构,在介绍完服务器的体系结构后, 就能够理解数据库服务器是如何工作的。 下面首先介绍进程结构。2.4.1进程结构Oracle 10g网络环境里共有两大类进程。(1)用户进程用户进程是在客户机内存上运行的程序,如客户机上运行的SQLplus、企业管理器等。用户进程向服务器进程提出操作请求。(2)服务器进程服务器进程是在服务器上运行的程序,接受用户进程发出的请求,根据请求与数据库通信,完成与数据库的连接操作和I/O访问。有一些特别重要的服务器进程负责完成数据库的后台管理工作,称为数据库后台支持进程。主要的服务器进程如表2-1所示。表2-1 oracle 10g 的主要后台支持进程名称主要作用系统监控进程(SMON)数据库系统启动时执行恢复性工作,对有故障数据库进行恢复进程监控进程(PMON)用于恢复失败的用户进程数据库写入进程(DBWR)将修改后的数据块内容写回数据库日志写入进程(LGWR)将内存中的日志内容写入日志文件归档进程(ARCH)当数据库服务器以归档方式运行时调用该进程完成日志归档检查点进程(CPKT)标识检查点,用于减少数据库恢复所需要的时间恢复进程(RECO)用于分布式数据库中的失败处理锁进程(LCKn)在并行服务器模式下确保数据的一致性快照进程(SNPn)进行快照刷新调度进程(Dnnn)负责把用户进程路由到可用的服务器进程进行处理2.4.2内存结构 数据库服务器使用计算机的内存来存放常用的信息和所有调度运行的程序。在其他条件相同的情况下,占用的内存越多,Oracle数据库的运行速度就越快,效率就越高。 (1)系统全局区 (SGA) SGA是数据库服务器为用户进程和服务器进程之间进行通信所使用的内存,所有用户进程共享SGA的内容,如图2-3所示。图2-3 SGA的作用 (2)程序全局区 (PGA) PGA是数据库服务器内存中为单个用户进程分配的专用的内存区域,是用户进程私有,不能共享。2.4.3数据库的逻辑结构 Oracle 10g数据库的逻辑结构主要指从数据库使用者的角度来考查的数据库的组成, 如图2-4所示。 自下向上,数据库的逻辑结构共有6层。 图2-4 数据库的逻辑结构数据块(DataBlock) (1) 数据块,又叫逻辑块 ,是Oracle 10g数据库输入/输出的基本单位,常用大小为2KB或4KB,与操作系统有关,在Windows2O00 Sever里默认为 4KB 。 (2)数据区间(Data Extent)若干个连续的数据块构成数据区间,是数据库存储空间分配的一个逻辑单位 。(3)数据段 (DataSegment)若干个数据区间构成数据段,Oracle 10g中有4种数据段 。 数据段: 存放数据 。 索引段: 存储索引数据 。 回滚段: 存储要撤消的信息 。 临时段: 当SQL语句需要临时空间时,将建立临时段。一旦执行完毕 ,临时段占用的空间将归还给系统 。回滚是保持数据一致性的一种策略。当用户对数据库操作已经提交但尚未完成时数据库突然发生中断 (比如突然停电等),要求重新启动后的数据库能够正确恢复到事务没有提交之前的状态 。 (4)逻辑对象(Logic Object)Oracle 10g数据库中提供了丰富的逻辑对象,包括表、视图、索引、触发器、数据库链接等共有 21种 。(5)表空间(Tablespace)为了提高数据库服务器管理和运行的效率,使用表空间这个虚拟的概念来管理Oracl e 10g数据库的默认表空间。表2-2 Oracle 10g数据库的默认表空间(6)数据库 (Database)一个数据库服务器上可以有多个数据库。一个数据库可以有多个表空间 一个表空间可以有多个表。 一个表可以有多个段。 一个段可以有多个区间 。一个区间可以有多个数据块。2.4.4数据库的存储结构数据库的存储结构指逻辑结构在物理上是如何实现的,共有3层。如图2-5所示。图 2-5 数据库的存储结构(1) 物理块 物理块是操作系统分配的基本存储单位,逻辑结构中的数据块由若干个物理块构成。(2 )物理文件每个物理文件由若干个物理块组成,包括数据文件、控制文件和日志文件三类。数据文件:用于存放所有的数据,以DBF为扩展名。日志文件:记录了对数据库的所有操作,以LOG为扩展名。控制文件:记录了数据库所有文件的控制信息,以CTL为扩展名。2.4.5数据库服务器的总体结构Oracle10g数据库服务器的总体结构如图2-6所示。图2-6 Oracle10g数据库服务器的总体结构数据库服务器由数据库管理系统和数据库构成。 数据库管理系统由内存结构(SGA和PGA)和进程结构构成。用户进程通过SGA提交请求服务器进程将这些客户请求转变成对后台数据库的各种操作。 数据库的物理结构由数据文件、日志文件和控制文件构成。 支持数据库运行的服务器后台进程和分配的内存结构统称为例程(Instance)。可以把例程理解为相对独立的逻辑上的数据库服务器。 2.5 ORACLE的数据类型oracle 10g中常用的数据库字段类型如表2-3所示:表2-3 常用的数据库字段类型字段类型中文说明限制条件其它说明CHAR固定长度字符串最大长度2000 bytes VARCHAR2可变长度的字符串最大长度4000 bytes 可做索引的最大长度749NCHAR根据字符集而定的固定长度字符串最大长度2000 bytes NVARCHAR2根据字符集而定的可变长度字符串最大长度4000 bytes DATE日期(日-月-年)DD-MM-YY(HH-MI-SS) LONG超长字符串最大长度2G(231-1)足够存储大部头著作RAW固定长度的二进制数据最大长度2000 bytes 可存放多媒体图象声音等LONG RAW可变长度的二进制数据最大长度2G同上BLOB二进制数据最大长度4GCLOB字符数据最大长度4GNCLOB根据字符集而定的字符数据最大长度4GBFILE存放在数据库外的二进制数据最大长度4GROWID数据表中记录的唯一行号10 bytes 为0或1NROWID二进制数据表中记录的唯一行号最大长度4000 bytesNUMBER(P,S)数字类型P为整数位,S为小数位DECIMAL(P,S)数字类型P为整数位,S为小数位INTEGER整数类型小的整数FLOAT浮点数类型NUMBER(38),双精度REAL实数类型NUMBER(63),精度更高 第三部分 实验内容实验一数据定义和数据更新实验目的:通过本实验能够熟练应用SQL语言进行基本表和索引的定义,能够对表的结构进行修改和删除,并通过数据更新命令输入相应的数据。实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码,这样才能在2个学时完成实验内容。实验原理:oracle 10g数据库管理系统完全支持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语言进行简单表的数据查询、数据排序和数据连接查询操作。实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码。实验原理:oracle 10g数据库管理系统完全支持SQL,SQL中关于数据查询的语法格式为:SELECT ALL|DISTINCT ,FROM ,WHERE GROUP BY HAVING ORDER BY ASC|DESC;实验内容 SQL中关于数据查询的语法格式为:SELECT ALL|DISTINCT ,FROM ,WHERE GROUP BY HAVING ORDER BY ASC|DESC;具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现。1简单查询操作。#1)求数学系学生的学号和姓名。#2)求选修了课程的学生学号。#3)求选修课程号为C1的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。#4)求选修课程号为C1且成绩在8090之间的学生学号和成绩,并成绩乘以0.8输出。5)求数学系或计算机系姓张的学生的信息。6)求缺少了成绩的学生的学号和课程号。2对实验一建立的学生-课程数据库中三个表进行单表查询。1)查询全体学生的详细记录。2)查询全体学生的姓名及其出生年份。3)查询年龄不在20至23岁之间的学生姓名、系别和年龄。4)查询所有姓刘的学生的姓名、学号和性别。5)查询学习1号课程的学生最高分数。6)查询名字中第二字为“阳”字的学生的姓名和学号。7)查询选修了c3号课程的学生的学号及其成绩,查询结果按分数的降序排列。#8)查询各个课程号与相应的选课人数。3连接查询操作。该实验包括等值连接、自然连接、一般连接、外连接和自连接等。1)查询每一门课的间接先修课(即先修课的先修课)。2)查询每个学生选修的课程名及其成绩。3)查询选修c2号课程且成绩在80分以上的所有学生思考题:1体会GROUP BY子句的用法。2体会等值连接和自然连接的区别。3体会外连接的实际效果。实验报告要求:写出1中前四题及3中前三题所有查询对应的命令。实验三 嵌套查询和视图操作实验目的:通过本实验能够应用SQL语言进行多表的嵌套查询及进行基本的视图操作。实验原理:oracle 10g数据库管理系统完全支持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题所对应的命令实验四 SQL Server的安全性和完整性控制实验目的:通过本实验能够熟练应用SQL语言进行用户权限的授予和回收,并能定义实体完整性,参照完整性及用户定义的完整性的定义,体会SQL Server数据库系统在安全性和完整性保护方面的特性。实验原理:实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码。实验内容:1两个用户相互配合完成以下实验内容。1)用户xg501把查询Student表权限授给用户xg502,xg502执行相应的查询。a)查询xg501用户的全体学生的详细记录。b)查询xg501用户的年龄不在20至23岁之间的学生姓名、系别和年龄。c)查询xg501用户的所有姓刘的学生的姓名、学号和性别。d)查询xg501用户的名字中第二字为“阳”字的学生的姓名和学号。2) xg501把对Student表和Course表的全部权限授予用户xg502。3) 把对表SC的查询权限授予所有用户并以下查询。a)查询xg501用户的选修了c3号课程的学生的学号及其成绩,查询结果按分数的降序排列。b)查询xg501用户的各个课程号与相应的选课人数。4) 将Student表和修改学生学号的权限授给用户xg502。5) 从用户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) 用CREATE TABLE 命令定义数据库结构。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个表,加下划线的是对应表的主码。具体是: 专业设置表:专业编号、院名、系别、专业。 学生情况表:学号、姓名、性别,出生日期、入学日期、专业编号。 课程表:课程编号,课程名,学时数,学分。 学生选课表:学号,课程号,选修日期,考试日期,成绩,是否重修。要求 完成专业设置情况信息的输入、查询、修改、删除。具体的处理要求是: 输入专业设置基本情况。以直观的表格界面给出,操作者只负责输入数据,输入时必须禁止输入数据表中已有的专业编号。 修改专业设置基本信息。以和输入界面相类似的形式,给出要修改的专业设置基本情况,因此修改之前必须先给出修改的条件,查询到有该专业设置后才能修改。当修改专业编号时,如果该专业已经有学生,即在学生情况表中有该专业编号的学生时,则必须同时修改学生情况表中的记录。 删除专业设置基本情况。以和修改类似的方法先查询出要删除的专业的基本情况。如果学生情况表中有该专业的学生记录,则拒绝删除。 查询统计。根据给定的各种具体条件(专业编号、院名、系别、专业),可以以单个条件进行查询,也可以以若干单个条件组合成任意复杂的条件进行查询。在查询时必须同时给出相应的有关学生人数的统计信息。在查询统计时不允许修改任何信息。 设计一个菜单系统,能够将上述的所有需求联接起来构成一个完整的应用系统。 完成学生基本情况信息的输入、查询、修改、删除。具体的处理要求是:输入学生基本情况。以直观的表格界面给出,操作者只负责输入数据,输入时必须禁止输入数据表中已有的学号。修改学生基本信息。以和输入界面相类似的形式,给出要修改的学生基本情况,因此修改之前必须先给出修改的条件,查询到有学生后才能修改。当修改学生的学号时,如果该学生已经选修了课程,即在学生选课表中有该学生的记录,则必须同时修改学生课表中的记录。删除学生基本情况,以和修改类似的方法先查询出要删除的学生基本情况。查询到有该同学后才能删除和查询一样,若选课表中有该同学的选课记录,也必须同时删除。查询统计。根据给定的各种具体条件(学号、姓名、性别、系别、专业、入学年份),可以以单个条件进行查询,也可以以若干单个条件组合成任意复杂的条件进行查询。当满足条件的同学有许多时,必须同时给出相应的统计信息,也应该能够逐个地显示每个同学的基本情况。在查询统计时不允许修改学生的任何信息。设计一个菜单系统,能够将上述的所有需求联接起来构成一个完整的应用系统。 完成课程管理的各种操作,具体的处理要求是:输入课程的基本信息。要求是以直观的界面表格给出课程输入表格,操作者只负责输入,输入时必须禁止输入想

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论