数据库实验报告全集共四次实验.docx
《数据库实验报告全集共四次实验.docx》由会员分享,可在线阅读,更多相关《数据库实验报告全集共四次实验.docx(68页珍藏版)》请在冰豆网上搜索。
数据库实验报告全集共四次实验数据库实验报告全集共四次实验实验一安装和了解DBMS系统实验报告【实验题目】安装和了解DBMS系统【实验人】xxx【学号】xxx【实验目的】
(1)熟悉一个特定DBMS(如SQLServer2000)的安装和基本应用。
(2)加深理解数据库的工作环境和系统结构。
(3)为后续的实验建立实验平台。
【实验环境】
(1)操作系统:
WindowsVista(本实验采用)或WindowsXP;
(2)数据库管理系统:
SQLServer2000(个人版)。
【实验活动记录】
(一)SQLServer2000的安装和启动1、WindowsVista系统下SQLServer2000的安装将SQLServer2000个人版的安装盘装入驱动器中,点击自动运行(若不能自动运行,可运行setup目录下的setup.exe应用程序)。
下面是在网上下载带有序列号的SQLServer2000个人版的软件的安装过程,每一个步骤均按照提示顺序执行,就可以顺利地完成整个安装过程。
在安装过程中有几个重要的步骤需要着重说明。
(1)解压下载的.rar压缩包后,点击运行文件autorun.exe,开始安装,如下图所示。
一般情况下,安装的应用程序都以setup.exe来命名,而有些自动运行的以autorun.exe来命名。
这个是安装任何应用程序都需要注意的。
(2)安装主界面按钮的选择,如下图所示:
其中“安装SQLServer2000的先决条件”是仅适用于Windows95的,可以直接点击“安装SQLServer2000组件”,进入之后会出现如下界面:
直接点击“安装数据库服务器”,就会可是准备安装文件。
值得注意的是,在WindowsVista系统下,会出现兼容性问题:
继续运行程序,在一般情况下,在WindowsXP系统下能够运行的程序都能在WindowsVista系统下运行。
(3)安装文件路径和服务的选择。
一般情况下数据库安装文件包括程序文件的安装和数据文件的安装,默认路径都是C:
programfilesMicrosoftSQLServer图示如下:
建议将程序文件安装在默认路径下,便于文件的管理,而数据文件安装在专门的SQL文件夹下,便于查询数据库和编程文件的统一管理。
另外就是开机启动的SQL服务账户设置,如下图所示:
一般对于只使用学习和实验用途的情况,选择对每个服务使用同一账户,服务设置也使用本地系统账户,方便计算机管理员对电脑的统一控制,也省去了多个用户和密码和多次输入的麻烦。
(4)关于身份验证模式的选择和说明。
在安装过程中,会出现下面的界面:
一般情况下,使用仅“Windows身份验证模式”,适合与本地访问,即学习和研究用途下,使用本地系统账户登陆,比较方便,但需要注意的是,在控制访问权限时,要赋予本地系统账户足够的权限;而选择混合模式(Windows身份验证和SQLServer身份验证)适合于网络应用,即远程访问,从而保证数据库系统的安全性。
(5)安装结果。
在安装完成后,用户所选择的SQLServer2000组件都放置在用户设置的安装路径下,同时完成注册文件的配置,并在“开始”“程序”菜单中生成“MicrosoftSQLServer”程序组。
至此完成了SQLServer2000(个人版)的安装。
2、数据库服务的启动和停止在正确安装SQLServer2000之后,会在系统启动时自动加载数据库服务。
如果需要手动启动和停止数据库服务,则可通过“服务管理器”来进行管理。
启动服务:
(1)选择“开始”“程序”“MicrosoftSQLServer”“服务管理器”,出现下面的界面:
(2)由于服务器只使用本地,无需选择,在服务下拉框中有三个选项:
MSDTC,SQLServer,SQLServerAgent。
我们在学习和研究情况下只使用SQLServer。
从图中可以看到,我们可以开始/继续、暂停和停止数据库服务,还可以设置开机是否自动启动服务。
点击“开始/继续”按钮,便能启动数据库服务。
停止服务:
选择“开始”“程序”“MicrosoftSQLServer”“服务管理器”,点击停止按钮,即可停止数据库服务。
此外,还可以通过管理工具中的“服务”选项来进行管理。
启动服务:
(1)选择“开始”“设置”“控制面板”“管理工具”“服务”选项;
(2)查找SQLServer的服务程序,选择启动该服务。
停止服务:
(1)选择“开始”“设置”“控制面板”“管理工具”“服务”选项;
(2)查找SQLServer的服务程序,选择停止该服务。
(二)初步了解MSSQLServer的结构。
1、理解理论上数据库系统的三层结构:
数据库的三层结构是指外模式,模式和内模式的三级模式,分别对应着SQLServer里的视图,表,存储文件。
外模式:
也称子模式与用户模式。
是用户的数据视图,也就是用户所见到的数据模式对应对象试图;数据库的模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征描述,也是所有用户的公共数据视图,对应对象中的基本表;内模式,亦称为存储模式,是数据在数据库系统内部的表示,即对数据物理结构和方式的,对应对象中的存储过程和文件。
2、了解数据库对象:
从查询分析器里面可以清晰地观察有关数据库对象:
数据库对象是数据库的组成部分。
从逻辑上看,常见的数据库对象以及有:
(1)表:
数据库中的表与我们日常生活中使用的表格类似,它也是由行和列组成的。
列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。
行包括了若干列项。
一行数据称为一个或一条记录,它表达有一定意义的信息组合。
一个数据库表由一条或多条记录组成,没有记录的表称为空表。
每个表中通常都有一个主关键字,用于唯一地确定一条记录。
(2)索引:
索引是根据指定的数据库表列建立起来的顺序。
它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复(如聚簇索引)。
(3)视图视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。
视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。
由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。
(4)图表图表其实就是数据库表之间的关系示意图。
利用它可以编辑表与表之间的关系。
3、了解物理存储:
在SQLServer2000中,每个数据库在物理存储上又分为数据文具和日志文件,这些数据和日志文件存放在一个或多个磁盘上,并且不与其它文件共享。
(1)数据文件:
SQLServer2000将一个数据文件中的空间分配给表格和索引,每块有64kb空间,叫做“扩展盘区”。
有两种类型的扩展盘区:
统一扩展盘区和混合扩展盘区。
每个扩展盘区由页面组成。
页面是SQLServer2000中数据存储的基本单元,每个页面的大小为8kb。
通常情况下,每个数据页面上以行的形式存储数据。
一行的数据最多达8060字节。
数据行上如若有群集索引,则基于群集索引的关键字(如邮政编码等)为顺序组织数据,否则没有特定的顺序。
(2)事务处理日志文件:
事务处理日志文件驻留在与数据文件不同的一个或多个物理文件中,包含一系列日志记录。
相应的图片如下:
(三)了解MSSQLServer的外围应用程序。
1、数据字典:
数据字典存放有数据库所用的有关信息,对用户来说是一组只读的表。
数据字典内容包括数据库中所有模式对象的信息:
表、视图、簇及索引,分配多少空间,当前使用了多少空间,列的缺省值,约束信息的完整性,用户的名字,用户及角色被授予的权限,用户访问或使用的审计信息等。
数据库数据字典是一组表和视图结构。
它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。
用户可以用SQL语句访问数据库数据字典。
2、系统参数:
(1)master数据库:
记录了SQLServer系统的所有系统级别的信息记录所有的登录账户和系统配置设置、系统中所有其它数据库(其中包括数据库文件的位置)、SQLServer的初始化信息,且始终有一个可用的最新master数据库备份。
(2)其他数据库:
除了master数据库之外,还有另外3种系统数据库:
tempdb、model、msdb。
tempdb数据库保存所有的临时表和临时存储过程;model数据库用作在系统上创建的所有数据库的模板;msdb数据库供SQLServer代理程序调度警报和作业以及记录操作员时使用。
3、装载/卸载工具:
装载/卸出工具指的是SQLServer所提供的数据导入导出工具。
通过向导,可以简单地将数据从SQLServer中导出来,可以导出为各种数据存储形式,包括flatfile、Access等,也可以从其他数据源导入到SQLServer系统中,这就为我们的数据提供了多种存储的方便。
4、查询分析器:
一个图形用户界面,用以交互地设计和测试Transact-SQL语句、批处理和脚本。
可以从SQLServer企业管理器调用SQL查询分析器。
5、企业管理器:
SQLServer的主要管理工具,提供了一个管理控制台的用户界面。
【实验思考题】1、了解MSServer的安全机制。
SQLServer的安全机制从顺序上可以分为认证和授权两部分。
(1)登录认证:
基于服务器级别的用户登录认证,对应于身份认证,控制用户是否可以连接到数据库服务器。
(2)用户:
基于数据库对象级别的权限许可,对应于对象级别的用户授权,控制用户是否可以操作数据库中具体的对象。
(3)角色:
基于数据库级别的用户权限许可,对应于数据库级别的用户授权,控制用户是否可以访问具体数据库。
去掉其中任何一个,将使得数据库安全性无法得到充分地保障。
使用三个概念,将使得在各个层次上都有具体的权限控制。
2、SQLServer与MySql的区别:
SQLServer是Microsoft公司推出的一种关系型数据库系统。
SQLServer是一个可扩展的、高性能的、为分布式C/S计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
其主要优点:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC等,并具有自主的SQL语言。
而与MySqL相比,其主要区别,在于开发环境、事务处理和开发难度。
SQLServer由于不开放源代码,很多架构都显示了其很好的封装性,也使得应用开发难度较低。
而且由于其与WindowsNT很好的结合,使得其事务处理速度很快,这点Mysql是难以匹敌的。
但是由于SQLServer只适用于Windows操作系统,在很多系统上无法安装,也限制了它的市场范围。
总之,SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
【实验体会】在这次实验中我深刻体会到安装数据库系统的复杂性,它要求用户具备数据库系统的基本常识,还要在安装过程中注意个别细节问题的选择安装。
此次实验我安装了两次,在卸载SQLServer2000之后,再打算重装的时候,会弹出“以前的某个程序安装已在安装计算机上创建挂起的文件操作。
运行安装程序之前必须重新启动计算机”错误,需要重新启动计算机来解决。
此外,建议身份验证方式最好选择混合验证方式,因为不管是在本地,还是从远程访问,都很方便,省去今后从企业管理器修改身份验证模式的程序。
【实验中遇到的问题】
(1)由于一般情况下,SQLServer都安装在WindowsXP或者Windows2000的系统环境下,初次在WindowsVista环境下安装,出现兼容性问题。
开始使用没有多大问题,但是难以保证在今后的数据库开发中不会出现问题,因此有待进一步的分析与测试。
(2)关于建表和查询分析,以及远程访问权限控制方面的问题,还有待进一步深刻的体会,由于实验条件和知识储备的限制,很多概念还无法彻底与数据库实际架构联系起来,有待今后课程中的进一步学习和上机实践。
实验二MSAccessQBEQuery使用实验报告【实验题目】MSAccessQBEQuery使用【实验人】xxx【学号】xxxxxxxx【实验目的】1、了解域关系演算在实际系统中的使用2、巩固实体关系代数与域关系演算的相关知识3、了解MSAccess的查询使用【实验环境】1、操作系统:
WindowsVista(本实验采用)或WindowsXP;2、数据库系统:
SQLServer2000(个人版)、MicrosoftAccess2003。
【实验活动记录】
(一)在MSAccess中导入NorthWind数据库中的部分表和数据将SQLServer中已经存在的一个样例数据库NorthWind导入Access中。
它是一个包含商品,客户,供货商,运货商,订单等若干实体的一个实例数据库。
在Access中导入NorthWind数据库中的部分表和数据。
导入的表有:
Customers表,Orders表,OrderDetails表,Employee表,Supplier表和Products表。
数据可以选择性的插入部分,但请注意表之间的参照关系,不要选择连接结果为0的数据,将不便于Join查询的实验。
实验过程如下:
打开MSSQL导入导出工具DTS向导,出现下面界面:
继续下一步,选择数据源、服务器和数据库,应选择的结果如下:
点击下一步,选择导出的数据库的目的地和文件名(在此用户名和密码不用填写,否则出错),截图如下:
下一步指定从数据源复制一个或者多个表和视图,还是复制查询结果,选择前者:
最后选择需要导出的数据库中的源表和视图,选择实验要求的五个表,截图如下:
点击下一步,立即运行并点击完成按钮,即实现了MSSQL的数据库表的导出到Access中的操作。
(二)写出以下查询的关系代数表达式和QBE表达式以下列出了一些在NorthWind上的查询例子,请写出其对应的关系代数表达式和QBE表达式:
1、Listallthecustomers.(allcondition)关系代数表达式:
(Customers)QBE表达式:
CustomersCustomerIDCompanyNamePhoneFaxP.2、Showthecustomersandtheiraddresses.(projection)关系代数表达式:
CustomerID,Address(Customers)QBE表达式:
CustomersCustomerIDCompanyNameAddressFaxP.P.3、ShowthecustomerswhosecityisLondon.(wherecondition)关系代数表达式:
CustomerID(City=London(Customers)QBE表达式:
CustomersCustomerIDCompanyNameCityFaxP.London4、Showtheorderdateandshippeddateoftheorder10250.(whereconditionandprojection)关系代数表达式:
OrderDate,ShippedDate(OrderID=10250(Orders)QBE表达式:
OrdersOrderIDOrderDateShippedDateShipCountry10250P.P.5、Listthecustomersandtheirmobilephone.(AddingSynonymstoanEntity)关系代数表达式:
CustomerID,Phone(Customers)QBE表达式:
CustomersCustomerIDCompanyNamePhoneFaxP.P.6、Showtheorderwhoseshipmentis65.83(AddingSynonymstoanEntity)关系代数表达式:
OrderID(Freight=65.83(Orders)QBE表达式:
OrdersOrderIDShippedDateFreightShipCountryP.65.837、ListthecustomerwhoisMarketingManager.(CreatingaRelationship)关系代数表达式:
CustomerID(ContactTitle=MarketingManager(Customers)QBE表达式:
CustomersCustomerIDCompanyNameContactTitleFaxP.MarketingManager8、ShowtheorderwhosecustomercomesfromLondon(AddingaNewRelationship)关系代数表达式:
OrderID(OrderID,CustomerID(Orders)CustomerID(City=London(Customers)QBE表达式:
OrdersOrderIDCustomerIDShippedDateShipCountryP.P.CustomersCustomerIDCompanyNameCityFaxP.London9、WhichsuppliersellsNorthwoodsCranberrySauce(AddingaNewRelationship)关系代数表达式:
SupplierID(ProductName=NorthwoodsCranberrySauce(Products)QBE表达式:
ProductsProductIDSupplierIDProductNameDiscontinuedP.NorthwoodsCranberrySauce10、WhosellsNorthwoodsCranberrySauce(AddingaNewRelationship)关系代数表达式:
ContactName(SupplierID,ContactName(Suppliers)SupplierID(ProductName=NorthwoodsCranberrySauce(Products)QBE表达式:
SuppliersSupplierIDContactNameAddressHomePageP.P.ProductsProductIDSupplierIDProductNameDiscontinuedP.NorthwoodsCranberrySauce11、Showthe1996products(complexmodelforjoin)关系代数表达式:
ProductName(ProductID,ProductName(Products)(OrderID,ProductID(OrderDetails)OrderID,OrderDate(OrderDate=1996(Orders)QBE表达式:
ProductsProductIDSupplierIDProductNameDiscontinuedP.P.OrderDetailsOrderIDProductIDDiscountP.P.OrdersOrderIDOrderDateShipCountryP.1996(三)在Access中执行QBE查询将上述查询在AccessQBE查询引擎中执行,并展示实验结果。
在Access中打开导出的数据库Northwind,点击对象查询,选择“在设计视图中创建查询”,即为Access中提供的QBE查询。
查询的结果用截图表示如下:
1、Listallthecustomers.(allcondition)2、Showthecustomersandtheiraddresses.(projection)3、ShowthecustomerswhosecityisLondon.(wherecondition)4、Showtheorderdateandshippeddateoftheorder10250.(whereconditionandprojection)5、Listthecustomersandtheirmobilephone.(AddingSynonymstoanEntity)6、Showtheorderwhoseshipmentis65.83(AddingSynonymstoanEntity)7、ListthecustomerwhoisMarketingManager.(CreatingaRelationship)8、ShowtheorderwhosecustomercomesfromLondon(AddingaNewRelationship)9、WhichsuppliersellsNorthwoodsCranberrySauce(AddingaNewRelationship)10、WhosellsNorthwoodsCranberrySauce(AddingaNewRelationship)11、Showthe1996products(complexmodelforjoin)(四)OpenQuestion:
OpenQuery在Access中使用下面的查询:
点击运行后,显示提示框“表达式中的类型不匹配“。
失败原因:
可能在Access中无法实现这种3个表以上连接选择的查询。
【试验体会】1、感觉第一次使用MicrosoftAccess2003有点不大会用,在自己的摸索下终于能够了解在Access数据库系统下如何查询和导入导出数据,从中也体会到的自学的乐趣。
2、在实验过程中需要非常细心,因为可能一个小小的操作失误就可能导致结果的错误,譬如说在从MSSQL导出数据到Access中时在填入用户名和密码就会提示出错,或者在查询显示时没有去掉默认的勾就会全部显示所有属性(这是不符合要求的)等等。
3、通过实验终于明白了,各种数据库之间的关系式想通的,只是很多数据库的构成和显示方式不一样或者支持的功能不一样,但是本质还是类似的。
通过数据的导入和导出就能看出这一点。
【实验中遇到的问题】1、在利用MSSQL的数据库导入导出向导工具时,将导出目的地选为MicrosoftAccess,目标文件夹选好之后填好用户名和密码之后:
点击下一步,提示如下:
通过反复摸索终于明白了,Access数据库是不用用户名和密码的。
2、在老师的要求下,要求从MSSQL数据库中导出Customers表,Orders表,Employee表,Supplier表和Products表五个表,可是第11题,要求实现三个表的连接操作,其中需要OrderDetails表来作为中间表。
所以还需要另外从SQL中导出到Access中。
才能完成第11题的查询操作。
3、在使用Access查询时有很多重复的项,据说这个是没法去重的,这也许是Ac