数据库实验心得[精选合集]

时间:2019-05-15 09:23:31下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据库实验心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据库实验心得》。

第一篇:数据库实验心得

没接触数据库的时候总是觉得它比较深奥 或是不可接近的电脑知识,尽管自己对电脑 非常感兴趣,其实还是有些心理上的陌生 感。学习电脑就和我们平时的其它科目学习一样感觉它有永无止境的知识,在这从初接 触电脑时连个电脑的键盘都不敢动到现在 连硬盘都也修理,其中的过程是多么长啊,数据库是我在高中时候听过,到了大学渐渐 了解了些,但就其原理性的内容还不知道,也就是根本就不清楚什么是数据库,只是知 道一个所谓的中国字典里的名词。经过此次 的课程设计,我初步明白了数据库的基本原 理。也已经掌握了数据库的基本知识。我想 对我以后的更深度学习打下了基础。这次课 程设计让我知道了让 vb 连接 sql 的方法。其实就是前台和后台的连接。有了这个思 想,我相信对以后是大有裨益的。

我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细 设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信 息查询,学生信息更新,学生信息添加等模块的功能。在这短短的五天里我收获如下:

1、巩固和加深了对 C#的理解,提高综合运用本课程所学知识的能力。

2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深 入研究,分析问题、解决问题的能力。

3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和 工程设计方法。根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:

1、认真上好专业实验课,多在实践中锻炼自己。

2、写程序的过程中要考虑周到,严密。

3、在做设计的时候要有信心,有耐心,切勿浮躁。

4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运 用。

5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错 误,以便能节省调试程序的时间

第二篇:数据库实验心得

我在sql server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8k大小。

对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。

区是管理空间的基本单位。一个区是八个物理上连续的页(即 64 kb)。这意味着 sql server 数据库中每 mb 有 16 个区。

为了使空间分配更有效,sql server 不会将所有区分配给包含少量数据的表。sql server 有两种类型的区:

统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。

混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。

通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。

为何会这样呢?

其实很简单:

读或写 8kb 的时间与读或写 64 kb的时间几乎相同。

在 8 kb 到 64 kb 范围之内,单个磁盘 i/o 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。

因此,从数学上来讲,当需要传输 64 kb 以上的 sql 数据时,尽可能地执行 64 kb 磁盘传输是有益的,即分成数个64k的操作。

因为 64 kb 传输基本上与 8 kb 传输一样快,而每次传输的 sql server 数据是 8 kb 传输的 8 倍。

我们通过一个实例来看 有and 操作符时候的最常见的一种情况。我们有下面一个表,create table [dbo].[member]([member_no] [dbo].[numeric_id] identity(1,1)not null, [lastname] [dbo].[shortstring] not null, [firstname] [dbo].[shortstring] not null, [middleinitial] [dbo].[letter] null, [street] [dbo].[shortstring] not null, [city] [dbo].[shortstring] not null, [state_prov] [dbo].[statecode] not null, [country] [dbo].[countrycode] not null, [mail_code] [dbo].[mailcode] not null, [phone_no] [dbo].[phonenumber] null, [photograph] [image] null, [issue_dt] [datetime] not null default(getdate()), [expr_dt] [datetime] not null default(dateadd(year,1,getdate())), [region_no] [dbo].[numeric_id] not null, [corp_no] [dbo].[numeric_id] null, [prev_balance] [money] null default(0), [curr_balance] [money] null default(0), [member_code] [dbo].[status_code] not null default(' '))

这个表具备下面的四个索引:

索引名 细节 索引的列

member_corporation_link nonclustered located on primary corp_no

member_ident clustered, unique, primary key located on primary member_no

member_region_link nonclustered located on primary region_no

memberfirstname nonclustered located on primary firstname

当我们执行下面的sql查询时候,select m.member_no, m.firstname, m.region_nofrom dbo.member as mwhere m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

sql server 会根据索引方式,优化成下面方式来执行。

select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as m where m.firstname like 'k%' and m.member_no < 5000)a ,--这个查询可以直接使用 memberfirstname 非聚集索引,而且这个非聚集索引覆盖了所有查询列--实际执行时,只需要 逻辑读取 3 次

(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6)b

--这个查询可以直接使用 member_region_link 非聚集索引,而且这个非聚集索引覆盖了所有查询列--实际执行时,只需要 逻辑读取 10 次

where a.member_no = b.member_no

不信,你可以看这两个sql 的执行计划,以及逻辑读信息,都是一样的。

其实上面的sql,如果优化成下面的方式,实际的逻辑读消耗也是一样的。为何sql server 不会优化成下面的方式。是因为 and 操作符优化的另外一个原则。

1/26 的数据和 1/6 的数据找交集的速度要比 1/52 的数据和 1/3 的数据找交集速度要慢。

select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as mwhere m.firstname like 'k%'--1/26 数据)a,(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6 and m.member_no < 5000--1/3 * 1/ 2 数据)bwhere a.member_no = b.member_no

当然,我们要学习sql 如何优化的话,就会用到查询语句中的一个功能,指定查询使用哪个索引来进行。

比如下面的查询语句

select m.member_no, m.firstname, m.region_nofrom dbo.member as m with(index(0))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

select m.member_no, m.firstname, m.region_nofrom dbo.member as m with(index(1))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with(index(membercovering3))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with(index(memberfirstname, member_region_link))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

这里 index 计算符可以是 0,1,指定的一个或者多个索引名字。对于 0,1 的意义如下:

如果存在聚集索引,则 index(0)强制执行聚集索引扫描,index(1)强制执行聚集索引扫描或查找(使用性能最高的一种)。

如果不存在聚集索引,则 index(0)强制执行表扫描,index(1)被解释为错误。

总结知识点:

简单来说,我们可以这么理解:sql server 对于每一条查询语句。会根据实际索引情况(sysindexes 系统表中存储这些信息),分析每种组合可能的成本。然后选择它认为成本最小的一种。作为它实际执行的计划。

成本代价计算的一个主要组成部分是逻辑i/o的数量,特别是对于单表的查询。

and 操作要满足所有条件,这样,经常会要求对几个数据集作交集。数据集越小,数据集的交集计算越节省成本。的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列索引的基础知识。

使用索引的意义

索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。

使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。

使用索引的代价

索引需要占用数据表以外的物理存储空间。

创建索引和维护索引要花费一定的时间。

当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。

创建索引的列

主键

外键或在表联接操作中经常用到的列

在经常查询的字段上最好建立索引

不创建索引的列

很少在查询中被引用

包含较少的惟一值

定义为 text、ntext 或者 image 数据类型的列

heaps是staging data的很好选择,当它没有任何index时

excellent for high performance data loading(parallel bulk load and parallel index creation after load)

excellent as a partition to a partitioned view or a partitioned table

聚集索引提高性能的方法,在前面几篇博客中分别提到过,下面只是一个简单的大纲,细节请参看前面几篇博客。

何时创建聚集索引?

clustered index会提高大多数table的性能,尤其是当它满足以下条件时:

独特, 狭窄, 静止: 最重要的条件

持续增长的,最好是只向上增加。例如:

identity

date, identity

guid(only when using newsequentialid()function)

聚集索引唯一性(独特型的问题)

由于聚集索引的b+树结构的叶子节点必须指向具体数据。如果你要建立聚集索引的列不唯一,并且你指定的创建的聚集索引是非唯一的聚集索引,则会有以下情况:

如果未使用 unique 属性创建聚集索引,数据库引擎 将向表自动添加一个四字节 uniqueifier 列。必要时,数据库引擎 将向行自动添加一个 uniqueifier 值,使每个键唯一。此列和列值供内部使用,用户不能查看或访问。

第三篇:数据库实验

实验1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理数据库 实验内容:

(1)使用SSMS(SQL Server Management Studio)加入实验数据库。(2)使用SSMS可视化建立、修改和删除数据库、表。(3)使用SSMS对数据库进行备份和恢复。

(4)使用SSMS对表进行查询、插入、修改、删除。实验步骤:

(1)加入School数据库。(2)建立Test数据库。

(3)在数据库中建立人员表PERSON(P#,Pname,Page)。更改表设置P#为主键,增加属性Ptype(类型是CHAR,长度是10)。

(4)用SSMS的查询功能(新建查询)对PERSON表进行查询、插入、修改、删除等操作:首先插入两条记录;修改第二条记录;删除第二条记录。(5)备份Test数据库。(6)删除表PERSON。(7)恢复Test数据库。(8)删除Test数据库。

第四篇:数据库实验

3.实验步骤

在学生选课数据库中实现其查询操作,写出T-SQL语句(注:学生选课数据库为前三次实验课所建立的数

据库)

一、简单查询实验

(1)查询选修了课程的学生学号。

(2)查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按

学号升序排列。

(3)查询选修课程号为0101的成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

二、连接查询实验

(1)查询每个学生的情况以及他(她)所选修的课程。

(2)查询选修离散散学课程且成绩为90分以上的学生学号、姓名及成绩。

(3)查询每一门课的间接先行课(即先行课的先行课)

三、嵌套查询操作

(1)查询0101课程的成绩高于张林的学生学号和成绩。

(2)查询其他系中年龄小于计算机系年龄最大者的学生。

(3)查询同王洪敏“数据库原理”课程分数相同的学生的学号。

(4)查询选修了全部课程的学生的姓名。

(5)查询与学号为09001103的学生所选修的全部课程相同的学生学号和姓名。

(6)查询至少选修了学号为09001103的学生所选修的全部课程的学生学号和姓名。

四、组合查询和分组查询

(1)查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号、成绩。

(2)查询年龄大于女同学平均年龄的男同学姓名和年龄。

(3)列出各系学生的总人数,并按人数进行降序排列。

(5)查询选修计算机基础和离散数学的学生学号和平均成绩。

4、要求

请按题号依次作答,完成在word文档中,写明班级学号姓名,于周日之于周日之前发至xcf7@163.com,独立完成,严禁抄

第五篇:数据库第三次实验

南昌航空大学实验报告

2018年5月30日

课程名称:

数据库原理

实验名称: 数据库安全性 学号: 16206127 指导教师评定:

姓名: 周良 签名:

一,实验目的

1熟悉不同数据库中的保护措施——安全性控制,重点实践○

SQL SEVER的安全性机制,掌握SQL Sever中有关用户、角色及操作权限等的管理方法。

二,实验内容

1,SQL Server的安全模式

(1)利用T-SQL添加SQL Sever账号。

(2)利用T-SQL修改SQL Sever登陆账号属性。

(3)利用T-SQL删除SQL Sever登陆账号。

2,管理数据库用户

(1)利用T-SQL添加SQL Sever用户。

(2)利用T-SQL删除SQL Sever用户。

3,管理数据库角色

(1)利用T-SQL删除用户自定义角色,可以使用系统存储过程sp_droprole删除用户自定义角色。

4,权限管理

(1)利用T-SQL管理权限

1语句授权。○2对象授权。○3收回授权。○三,实验步骤

exec sp_addlogin 'qh','qh','jxgl','english'

四,exec sp_password 'qh','qhqxzsly','qh' 五,六,alter login qh with password='123456' 七,八,exec sp_droplogin qh 九,十,drop login qh 十一,十二,use jxgl 十三,exec sp_grantdbaccess 'DESKTOP-7M8SQ9T','qh' 十四,exec sp_revokedbaccess qh 十五,十六,use jxgl;

十七,exec sp_addrole 'newrole'

十八,exec sp_addrolemember 'newrole','qh' 十九,二十,exec sp_droprole 'newrole' 二十一,二十二,use master

二十三,grant create database to qh 二十四,二十五,二十六,grant create table,create view to qh 二十七,二十八,grant select on s to qh,qxz,sly 二十九,三十,grant insert,delete on s to shen 三十一,三十二,grant update on s(age,dept)to shen 三十三,三十四,grant execute on sp_ins_s to shen 三十五,三十六,revoke create table,create view form sly 三十七,三十八,revoke select on s from qxz ,sly 四,实验心得

通过此次实验我了解了SQL Sever中有关用户、角色及操作权限等的管理方法,同时也更加注重数据库安全性方面的问题,我们创建的每一个数据库都应该考虑安全性问题,应该为数据库创建一些必要的角色,同时也要管理数据库的权限方面,防止数据向外流失,或者被黑客盗用。

下载数据库实验心得[精选合集]word格式文档
下载数据库实验心得[精选合集].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据库实验6

    HUNAN UNIVERSITY 实验报告 题 目: 数据库实验六 学生姓名: 学生学号: 专业班级: 上课老师:  实验目的 熟悉使用存储过程来进行数据库应用程序的设计。  实验平台和实验工具......

    数据库实验一

    山东建筑大学 计算机学院 实验报告 班级 姓名: 学号: 实验成绩: 课程: 数据库系统概论 同组者: 实验日期:2018年3月3日 实验一 创建数据库 一.实验目的 1.学会数据表的创建; 2.加深......

    Access数据库实验

    实验一 ACCESS之表的操作 一、实验目的 1、熟悉Access用户操作界面。 2、掌握创建表的方法。 3、掌握创建主键和索引的方法。 4、掌握表结构的编辑和表中数据的操作方法。 5......

    数据库实验总结

    实验总结 在上一个星期,我们用数据库做了一个学生管理系统,分别实现了学生管理系统的添加学生信息、删除学生信息、修改学生信息退出等几大功能。 在这次项目中,我们都很用心去......

    数据库实验心得体会

    数据库实验心得体会 有关于数据库实验的心得体会,总的来说,受益匪浅。在这些天中,我们学到了很多东西,包括建表,导入数据,查询,插入。最重要的是我们有机会用电脑自己进行实践,没接......

    数据库实验3-4

    数据库实验3-4 任选两种方式之一建立实验2中的各数据库表(一运行给定的 “perfectPets.sql” script 文件二将各表数据用Excel表的方式导入数据库);然后编写 SQL programs 完成......

    数据库实验4要求

    2018年4月27日星期五 实验四: SQL数据查询实验 学号 1615070316 姓名 汪旭实验目的: (1)熟练掌握SQL Server 管理器环境中交互式SQL语言的应用 (2)理解并熟练掌握SQL查询语句各......

    数据库原理实验教案

    《数据库原理》课程实验 实验1 创建数据库和数据表 一、实验目的 熟悉SQL Server Management Studio界面;掌握通过图形化向导和执行Transact-SQL语句创建数据库的方法。 二、......