数据库实验报告Word文件下载.docx
- 文档编号:19647165
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:17
- 大小:331.13KB
数据库实验报告Word文件下载.docx
《数据库实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库实验报告Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
通过对数据的统一组织和管理,按照指定的结构建立相应的数据库和数据仓库;
利用数据库管理系统和数据挖掘系统设计出能够实现对数据库中的数据进行添加、修改、删除、处理、分析、理解、报表和打印等多种功能的数据管理和数据挖掘应用系统;
并利用应用管理系统最终实现对数据的处理、分析和理解。
数据库技术是信息系统的一个核心技术。
是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。
是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。
二、实习时间
2016年6月13日—2016年7月2日
三、实习软件平台简介
SQLServer2008在Microsoft的数据平台上发布,可以组织管理任何数据。
可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。
可以对数据进行查询、搜索、同步、报告和分析之类的操作。
数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。
SQLServer2008允许使用Microsoft.NET和VisualStudio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过MicrosoftBizTalkServer进行的业务流程中使用数据。
信息工作人员可以通过日常使用的工具直接访问数据。
四、设计内容及过程
(一)《数据库系统概论》基础知识总结
“数据库原理”所涉及的内容,不仅是这些相关专业必备的知识基础,同时也是进一步深入研究数据管理与应用技术的出发点。
而《数据库系统概论》是数据库应用设计的“基石”,只有掌握好这本书的重点内容,才能有条不紊的设计出自己想要的数据库。
1、关系数据语言
1)关系代数
关系代数是一种抽象的查询语言,它是用来对关系的运算来表达查询的。
关系代数的运算对象是关系,运算结果也是关系。
关系代数用到的运算符包括:
集合运算符、专门的关系运算符、比较运算符和逻辑运算符。
集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。
专门的关系运算包括选择、投影、连接、除等。
选择、投影和连接是关系数据语言的基本运算。
也就是说,一种数据库语言至少需要能够提供这3种语言才能称为关系数据语言。
2、关系数据标准语言SQL
1)基本表
在表的定义中,包括表的创建(create)、删除(drop)、修改(alter)。
建立数据库最重要的一步就是定义基本表。
首先,看表结构的定义,主要是选择组成表的属性的名称、数据类型和长度。
其次,定义与该表有关的完整性约束条件。
这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时,由DBMS自动检查是否违背了这些完整性约束条件。
数据完整性包括实体完整性、参照完整性和用户定义完整性3类完整性约束,这些完整性约束都必须在表定义中给予说明。
删除基本表,用DROPTABLE语句删除它。
若选择RESTRICT,则该表的删除是有限制条件的,欲删除的基本表不能被其他表的约束所引用。
若选择CASCADE,则该表的删除没有限制条件,在删除基本标的同时,相关的依赖对象都将被一并删除。
修改基本表。
SQL语言用ALTERTABLE语句修改基本表。
ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件。
DROPCOLUMN用于删除表中的列。
ALTERCOLUMN用于修改原有的列定义。
DROPCONSTRAINT用于删除指定的完整性约束条件。
2)查询
数据库查询是数据库操作的核心。
数据库查询有基本固定的格式。
整个查询语句的含义是:
根据WHERE子句的条件表达式从FROM子句指定的对象中找出满足条件的元组,再按SELECT子句中的目标列表达式中选出元组中的属性值形成结果表。
对于查询结果的列标题,用户可以使用原来的标题,但是当出现表达式的时候,用户可以通过指定的别名来改变查询结果的列标题。
有些表中需要用distinct来消除取值重复的行。
当用户查询的语句中含有通配符,这时要用escape‘<
转换符>
’短语对通配符进行转义。
where语句中是不能用聚集函数作为条件表达式的,聚集函数只能用于SELECT子句和GROUP中的HAVING子句中。
3)视图
建立视图,SQL语言用CREATE VIEW命令创建视图。
WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义的谓词条件,即子查询中的条件表达式。
3、数据库安全性和完整性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
实现数据库安全性控制的常用方法和技术有:
用户标识和鉴别、存取控制、视图机制、审计和数据加密。
数据库的完整性是指数据的正确性和相容性。
数据的完整性和安全性是两个不同的概念,但是有一定的联系。
前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进出(Garba:
eInGarba:
eout)所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
4、数据库中概念模型构造
将需求信息分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,它是整个数据库设计的关键。
多用E-R图表示概念模型,主要包括实体、属性、实体之间的联系。
实体-联系方法(E-R方法)是抽象和描述现实世界的有力工具。
用E-R图表示概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。
E-R图提供了表示实体型、属性和联系的方法,它是数据库设计的核心技术,所以,学会编写E-R图是非常重要的。
对于E-R图的编写,首先要找到各个实体,用矩形表示;
然后再找到实体的属性,用椭圆表示;
最后,找到实体之间的联系,用菱形表示。
对于E-R图画好以后,还要列出关系模式。
关系模式由关系名以及各属性组成。
在绘制E-R图的过程中联系可以有属性也可以没有属性,但是对于多对多的关系中,通常有属性。
要确定好实体与属性,通常属性与其所描述的实体间只能是单值联系;
属性没有再进一步描述的性质;
属性除了它所描述的实体外,不能再与其他的实体具有联系。
为了简化E-R图,能够作为属性的值应该尽量按属性值处理。
5、数据库的恢复和控制
数据库系统中可能发生各种各样的故障,大致可以分以下几类:
事务内部的故障、系统故障、介质故障、计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;
介质故障和计算机病毒破坏数据库数据。
事务故障的恢复
事务故障的恢复是由DBMS执行恢复步骤是自动完成的,对用户是透明的。
(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作;
(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;
(3)继续反向扫描日志文件,做同样处理;
(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。
系统故障的恢复
系统故障可能会造成数据库处于不一致状态:
一是未完成事务对数据库的更新可能已写入数据库;
二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。
因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。
(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列)。
(2)对撤销队列中各个事务进行UNDO处理。
进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
(3)对重做队列中的各个事务进行REDO处理。
进行REDO处理的方法是:
正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。
即将日志记录中“更新后的值”写入数据库。
介质故障的恢复
介质故障是最严重的一种故障。
恢复方法是重装数据库,然后重做已完成的事务。
(1)DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到转储时的一致性状态;
(2)DBA装入转储结束时刻的日志文件副本;
(3)DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。
并发控制
数据库是一个共享资源,可以供多个用户使用。
当多个用户并发的存取数据库时就会产生多个事务同时存取同一数据的情况。
若对并发操作不加控制就可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性。
并发操作带来的数据不一致性包括丢失修改、不可重复读、读“脏”数据。
产生这三种数据不一致的原因是并发操作破坏了事务的隔离性。
并发控制的主要技术有封锁、时间戳、乐观控制法和多版本并发控制等。
其中,最重要的就是封锁法。
基本的封锁类型有两种:
排他锁(X)、共享锁(S)。
但是,和操作系统一样,封锁的方法可能引起一些问题:
活锁和死锁。
对于活锁的预防采用先来先服务的策略。
对于死锁的问题一般可以采用两种方法:
一是预防死锁的发生。
二是采用一定的手段定期诊断死锁,若有则解除之。
对于预防死锁的发生有两种方法:
a、一次封锁法。
b、顺序封锁法。
对于死锁的诊断与解除可以用超时法、等待图法。
若发生死锁就选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁。
(二)《石墨烯制备工艺》数据库分析设计
1、创建数据库,导入信息
将excel中的数据导入的SQLserver数据库中大致分为以下几个步骤:
A.先找到将要导入到数据库中的excel表格,检查excel表中的表格格式是否正确。
如下图所示:
图4.2.1.1
B.打开数据库选择被导入的数据库--右键--选择任务--导入数据。
C.打开数据导入向导后选择数据源(导入文件的类型)为Excel,再选择文件的存储位置。
如下图所示:
D.按照下一步提示后选择服务器和目标数据库。
E.点击下一步,确定导入的类型。
F.选择源表和目标表,如果不选择目标,则会在数据库中自动生成同名的表并把数据导入进去。
如图所示:
G.点击下一步,默认为立即运行。
如图所示:
H.最后点击完成。
I.导入过程完成后,最后检查导入的数据库信息,如果有些格式或出现错误的地方需要自己手动进行修改。
如图所示
2、创建数据表
CREATETABLE[dbo].[SCI_data](
[ID][int]IDENTITY(1,1)NOTNULL,
[AU][nvarchar](max)NULL,
[TI][nvarchar](max)NULL,
[SO][nvarchar](255)NULL,
[C1][nvarchar](max)NULL,
[TC][nvarchar](255)NULL,
[PD][nvarchar](255)NULL,
[PY][nvarchar](255)NULL,
[VL][nvarchar](255)NULL,
[IS][nvarchar](255)NULL,
[PN][nvarchar](255)NULL,
[SU][nvarchar](255)NULL,
[SI][nvarchar](255)NULL,
[BP][nvarchar](255)NULL,
[EP][nvarchar](255)NULL,
[class][nvarchar](255)NULL,
[ident][int]NOTNULL
);
INSERTINTO[DataProcess].[dbo].[SCI_data]
([AU],[TI],[SO],[C1],[TC],[PD],[PY],[VL],[IS],[PN],[SU],[SI],[BP],[EP],[class],[ident])
select[AU],[TI],[SO],[C1],[TC],[PD],[PY],[VL],[IS],[PN],[SU],[SI],[BP],[EP],[class],[ident]
fromSCI_data_all;
汇总practice_t8、practice_t2、practice_t_ti_tc数据到一个数据表practice_last:
3、创建总体数据表
CREATETABLE[dbo].[practice_last](
[id][int]IDENTITY(1,1)NOTNULL,
[c1_au][nvarchar](200)NULL,
[ident][int]NULL,
[institute][nvarchar](300)NULL,
[source][nvarchar](1000)NULL,
[country][nvarchar](300)NULL,
[TC][int]NULL,
[au][nvarchar](max)NULL,
[year][nvarchar](10)NULL
[class][nvarchar](255)NULL
)
742673
INSERTINTO[dbo].[practice_last]
([c1_au],[ident],[institute],[source],[country],[TI],[TC],[class],[year],[au])
selecta.[c1_au],a.[ident],a.[institute],c.[source],a.[country],b.[TI],b.[TC],b.[class],b.[PY],b.[au]
frompractice_t8a,SCI_datab,practice_t2c
wherea.ident=b.identandb.ident=c.ident
5、检查更新错误的数据
AU字段为空的处理。
解决办法:
当AU为空时,BA/CA不为空,用BA/CA的信息替换AU。
具体实现SQL语句:
update石墨烯汇总表
setAU=BA
whereAUisnullandBAisnotnull
setAU=CA
whereAUisnullandCAisnotnull;
C1字段问题处理
1)删除C1为空记录,因为没有办法统计机构、国家等信息。
deletefrom石墨烯汇总表
whereC1isnull;
2)删除多作者且C1中不含作者信息的记录,因为没有办法对应作者的机构、国家等信息。
wherecharindex('
'
c1)=0andcharindex('
;
'
AU)>
0;
注释:
charindex()函数常常用来在一段字符中搜索字符或者字符串。
charindex('
表达式1'
,表达式2)返回值
通常情况下'
为一个字符或短字符串,表达式2为被搜索的内容,如果存在返回表达式1中的字符的位置,否则返回负数或零。
增加标识字段
altertable石墨烯汇总表
Add标识intidentity(1,1);
注释:
identity(表达式1,表达式2)函数的主要意义是,以‘表达式1’为起点,‘表达式2’为增量。
起始数据是‘表达式1’每增加一个记录‘表达式1’中的数据就会增加一个‘表达式2’。
创建一个新的数据表,导出主要字段,简化数据
CREATETABLE石墨烯主要表(
IDINTIDENTITY(1,1)NOTNULL,
AUNVARCHAR(MAX)NULL,
TINVARCHAR(MAX)NULL,
SONVARCHAR(255)NULL,
C1NVARCHAR(MAX)NULL,
TCNVARCHAR(255)NULL,
PDNVARCHAR(255)NULL,
PYnvarchar(255)NULL,
VLnvarchar(255)NULL,
IFLOATNULL,
PNnvarchar(255)NULL,
SUnvarchar(255)NULL,
SInvarchar(255)NULL,
BPFLOATNULL,
EPFLOATNULL,
classnvarchar(255)NULL,
identintNOTNULL)
INSERTINTO石墨烯主要表
(AU,TI,SO,C1,TC,PD,PY,VL,I,PN,SU,SI,BP,EP,class,ident)
SELECTAU,TI,SO,C1,TC,PD,PY,VL,I,PN,SU,SI,BP,EP,class,标识
FROM石墨烯汇总表;
遇到的问题:
在创建表的过程中有一个IS字段与数据库的预留字段发生冲突,导致SQL语句执行失败。
将IS字段更换成I字段。
操作结果
6、统计按领域的国家排名
INSERTINTO[dbo].[SF_Country]
([Class_ESI],[Country],[Paper_Num],[Paper_FC],[paper_AFC],[_batch])
select[Class],[Country],count(*),sum(convert(int,tc)),round(sum(convert(int,tc))/convert(float,count(*),2),1),'
20150428'
from[DataProcess].[dbo].practice_last
groupbyclass,country;
出现:
“警告:
聚合或其他SET操作消除了空值。
”没有关系。
7、文献信息连接
操作步骤如下:
1、建立数据表SCI_data1——简化source的整理,并且导入数据
CREATETABLE[dbo].[SCI_data1](
[SO]NVARCHAR(255)NULL,
[VL]NVARCHAR(255)NULL,
[IS]NVARCHAR(255)NULL,
[PN]NVARCHAR(255)NULL,
[SU]NVARCHAR(255)NULL,
[SI]NVARCHAR(255)NULL,
[BP]NVARCHAR(255)NULL,
[EP]NVARCHAR(255)NULL,
[PD]NVARCHAR(255)NULL,
[PY]NVARCHAR(255)NULL,
INSERTINTO[DataProcess].[dbo].[SCI_data1]
([SO],[VL],[IS],[PN],[SU],[SI],[BP],[EP],[PD],[PY],[ident])
SELECT[SO],[VL],[IS],[PN],[SU],[SI],[BP],[EP],[PD],[PY],[ident]
FROM石墨烯数据汇总;
操作结果:
2、创建数据表practice_t2——存储source信息
CREATETABLE[dbo].[practice_t2](
[source]NVARCHAR(1000)NULL,
[ident][int]NULL
3、数据生成
declare@mint,@iint,@identint
declare@SOvarchar(500)
declare@VLvarchar(10)
declare@ISvarchar(10)
declare@PNvarchar(10)
declare@SUvarchar(10)
declare@SIvarchar(10)
declare@BPvarchar(10)
declare@EPvarchar(10)
declare@PDvarchar(10)
declare@PYvarchar(10)
declare@SOURCEvarchar(500)
set@m=(selectcount(*)fromSCI_data1)
set@i=1
while@i<
=@m
begin
set@SO=(selectSOfromSCI_data1whereident=@i)
set@VL=(selectVLfromSCI_data1whereident=@i)
set@IS=(select[IS]fromSCI_data1whereident=@i)
set@PN=(selectPNfromSCI_data1whereident=@i)
set@SU=(selectSUfromSCI_data1whereident=@i)
set@SI=(selectSIfromSCI_data1where
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告