大三上:数据库系统概论所有实验报告和课后作业

文章目录

  • 一、实验目的及要求
  • 二、实验内容(或实验原理、实验拓扑)
  • 三、实验设备与环境
  • 四、实验设计方案(包括实验步骤、设计思想、算法描述或开发流程等)
  • 五、实验结果(包括设计效果、测试数据、运行结果等)
  • 六、实验小结(包括收获、心得体会、注意事项、存在问题及解决办法、建议等)
  • 七、附录(包括作品、流程图、源程序及命令清单等)

一、实验目的及要求

熟练使用DBMS提供的功能组件来实现事务的创建,了解DBMS提供的事务并发控制机制,进一步理解事务的概念及特性,了解事务是如何保证数据库的一致性。

二、实验内容(或实验原理、实验拓扑)

  1. 定义事务,理解事务的ACID特性。
  2. 事务故障恢复,理解事务的ACID特性。
  3. 事务的并发控制,理解事务的ACID特性。

三、实验设备与环境

  1. 阿里云服务器:Intel® Xeon® Platinum 8269CY CPU @ 2. 50GHz、2G内存、40G高效云盘、Windows Server 2019 数据中心版、Microsoft SQL Server 2008 R2
  2. 高配笔记本:Intel® Core™ i7-7700HQ CPU @ 2.80GHz
    、16G内存、48TB分布式硬盘、Windows 10 1909政府版、SQL Server Management Studio 18.4
  3. 实验室电脑:英特尔 酷睿2 双核 T7700 @ 2.40GHz、3G内存、128 G虚拟硬盘、Windows 7 旗舰版 32位 SP1、Microsoft SQL Server 2008 R2

四、实验设计方案(包括实验步骤、设计思想、算法描述或开发流程等)

一、 实验结果(包括设计效果、测试数据、运行结果等)
在学生-课程数据库上完成如下操作。

  1. 事务的定义
    (1)了解事务运行模式
    在查询编辑器中输入如下语句并执行,最后语句中包含语义错误,查看前面语句执行情况。了解在没有显示定义事务的情况下,DBMS默认每个SQL语句就是一个事务。发生错误后,只回滚一个SQL语句。
    –select * from sc
    –select * from c
    insert into C(CNO,CN) values(‘c21’,‘rjgc’)
    insert into C(CNO,CN) values(‘c22’,‘txyl’)
    insert into C(CNO,CN) values(‘c21’,‘gmtjs’)

    (2)显示定义事务
    ① 定义一事务,包含前面的三条插入语句,最后语句中包含语义错误。执行该事务,与前面的执行结果进行比较,分析结果。
    BEGIN TRANSACTION
    insert into Course(CNO,CN) values(‘c22’,‘txyl’)
    insert into Course(CNO,CN) values(‘c21’,‘gmtjs’)
    insert into Course(CNO,CN) values(‘c21’,‘rjgc’)
    ROLLBACK
    执行结果:
    select * from course

    创建一个事务,以ROLLBACK结尾时,只要事务中有一句不能执行,那么都不会执行。
    ② 修改定义中的错误,以rollback和 commit两种方式结束事务。查看被更新表的数据,说明rollback的 commit不同。
    不同之处:
    以rollback结尾时,不论成功与否,都会回滚;而以commit结尾时,只要能成功执行,就能进行更改。
    BEGIN TRANSACTION
    insert into Course(CNO,CN) values(‘D22’,‘txyl’)
    insert into Course(CNO,CN) values(‘D21’,‘gmtjs’)
    COMMIT

    BEGIN TRANSACTION
    insert into Course(CNO,CN) values(‘E22’,‘txyl’)
    insert into Course(CNO,CN) values(‘E21’,‘gmtjs’)
    ROLLBACK

    select * from course

    2.事务故障恢复
    事务故障破坏事务的原子性。事务故障后,系统自动强行回滚(rollback)该事务。即利用日志撤销此事务已对数据库的更新,保持事务的原子性。对提供检测点的DBMS,事务的回滚与设置的检测点有关。
    在“学生—课程”学数据库上,执行下面的事务,分析结果,阐述设置存储点的作用。
    begin tran t1
    select * from sc
    insert into SC(SNO,CNO) values(‘s01’,‘c05’)

    select * from sc
    save tran t1
    update sc set grade=60 where sno=’s01’ and cno=’c05’

    select * from sc
    rollback tran t1
    select * from sc

比较每次查询的结果,说明 save tran t1的功能。把rollback tran t1改为rollback看一下,结果如何?

  • 第一次select
  • 第二次select
  • 第三次select
  • 第四次select

    Save tran t1的功能是将这条语句上面所执行的事务记录下来,执行rollback tran t1后,会回到刚才记录的那个状态。

把rollback tran t1改为rollback,执行结果:

  • 第一次select
  • 第二次select
  • 第三次select
  • 第四次select

    若把rollback tran t1改为rollback,会发现回到最初事务没有执行的那个状态。

3.事务的并发控制
大多数DBMS为并发事务提供封锁请求,有共享锁和排它锁。SQL SERVER中,为了模拟并发环境,打开多个查询窗口即可。
在“学生—课程”数据库上完成如下操作。
(1)在一个查询窗口中执行事务T1
begin tran T1
SELECT * from SC where SNO=‘s07’

(2)在另一个查询窗口中执行事务T2,此时事务T1还未结束。
begin tran T2
SELECT * from SC where SNO=‘s07’
比较T2与T1的结果。
T1和T2的执行结果一样

(3)返回事务T1继续运行事务,进行数据修改并查询,例如:
Update sc set grade=grade+2 where sno=’s07’
Select * from where sno=’s07’
观察结果。

(4)回到事务T2,事务T2进行同样操作,进行数据修改并查询。
Update sc set grade=grade+2 where sno=’s07’
Select * from sc where sno=’s07’
说明此时的状态。
T2一直在执行中

(5)回到事务T1,提交事务。即执行commit。

(6)返回到事务T2,说明此时的状态和结果。
T2成功执行,并且在T1加2的基础上又再加上2。

(7)然后强行关闭两个查询,即T1已提交,T2不提交。
(8)再执行Select * from sc where sno=’s07’,解释结果。对发生了故障的事务T2,系统是如何做的?保证了事务的什么特性?

因为事务有ACID特性,事务T1提交,而T2没有提交,所以查看到的内容是T1执行后的内容。
保证了事务的ACID特性。
系统是如何做的?
事务的ACID特性是由关系数据库管理系统来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。

  1. 事务的回滚与设置检查点的关系。
    事务回滚:是数据库返回到事务开始的状态:事务在运行过程中发生某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,使数据库回滚到事务开始时的状态。
    检查点:出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘。 相反,数据库引擎定期发出对每个数据库的检查点命令。 “检查点”将当前内存中已修改的页和事务日志信息从内存写入磁盘,并记录有关事务日志的信息。对于自动、手动和内部检查点,在数据库恢复期间只有在最新检查点后所做的修改需要前滚。 这将减少恢复数据库所需的时间。

五、实验结果(包括设计效果、测试数据、运行结果等)

在学生-课程数据库上完成如下操作。
1.事务的定义
(1)了解事务运行模式
在查询编辑器中输入如下语句并执行,最后语句中包含语义错误,查看前面语句执行情况。了解在没有显示定义事务的情况下,DBMS默认每个SQL语句就是一个事务。发生错误后,只回滚一个SQL语句。
–select * from sc
–select * from c
insert into C(CNO,CN) values(‘c21’,‘rjgc’)
insert into C(CNO,CN) values(‘c22’,‘txyl’)
insert into C(CNO,CN) values(‘c21’,‘gmtjs’)

(2)显示定义事务
① 定义一事务,包含前面的三条插入语句,最后语句中包含语义错误。执行该事务,与前面的执行结果进行比较,分析结果。
BEGIN TRANSACTION
insert into Course(CNO,CN) values(‘c22’,‘txyl’)
insert into Course(CNO,CN) values(‘c21’,‘gmtjs’)
insert into Course(CNO,CN) values(‘c21’,‘rjgc’)
ROLLBACK
执行结果:
select * from course

创建一个事务,以ROLLBACK结尾时,只要事务中有一句不能执行,那么都不会执行。

② 修改定义中的错误,以rollback和 commit两种方式结束事务。查看被更新表的数据,说明rollback的 commit不同。
不同之处:
以rollback结尾时,不论成功与否,都会回滚;而以commit结尾时,只要能成功执行,就能进行更改。
BEGIN TRANSACTION
insert into Course(CNO,CN) values(‘D22’,‘txyl’)
insert into Course(CNO,CN) values(‘D21’,‘gmtjs’)
COMMIT

BEGIN TRANSACTION
insert into Course(CNO,CN) values(‘E22’,‘txyl’)
insert into Course(CNO,CN) values(‘E21’,‘gmtjs’)
ROLLBACK

select * from course

2.事务故障恢复
事务故障破坏事务的原子性。事务故障后,系统自动强行回滚(rollback)该事务。即利用日志撤销此事务已对数据库的更新,保持事务的原子性。对提供检测点的DBMS,事务的回滚与设置的检测点有关。
在“学生—课程”学数据库上,执行下面的事务,分析结果,阐述设置存储点的作用。
begin tran t1
select * from sc
insert into SC(SNO,CNO) values(‘s01’,‘c05’)

select * from sc
save tran t1
update sc set grade=60 where sno=’s01’ and cno=’c05’

select * from sc
rollback tran t1
select * from sc

比较每次查询的结果,说明 save tran t1的功能。把rollback tran t1改为rollback看一下,结果如何?

第一次select 第二次select 第三次select 第四次select
Save tran t1的功能是将这条语句上面所执行的事务记录下来,执行rollback tran t1后,会回到刚才记录的那个状态。

把rollback tran t1改为rollback,执行结果:

第一次select 第二次select 第三次select 第四次select
若把rollback tran t1改为rollback,会发现回到最初事务没有执行的那个状态。

3.事务的并发控制
大多数DBMS为并发事务提供封锁请求,有共享锁和排它锁。SQL SERVER中,为了模拟并发环境,打开多个查询窗口即可。
在“学生—课程”数据库上完成如下操作。
(1)在一个查询窗口中执行事务T1
begin tran T1
SELECT * from SC where SNO=‘s07’

(2)在另一个查询窗口中执行事务T2,此时事务T1还未结束。
begin tran T2
SELECT * from SC where SNO=‘s07’
比较T2与T1的结果。
T1和T2的执行结果一样

(3)返回事务T1继续运行事务,进行数据修改并查询,例如:
Update sc set grade=grade+2 where sno=’s07’
Select * from where sno=’s07’
观察结果。

(4)回到事务T2,事务T2进行同样操作,进行数据修改并查询。
Update sc set grade=grade+2 where sno=’s07’
Select * from sc where sno=’s07’
说明此时的状态。
T2一直在执行中

(5)回到事务T1,提交事务。即执行commit。
(6)返回到事务T2,说明此时的状态和结果。
T2成功执行,并且在T1加2的基础上又再加上2。

(7)然后强行关闭两个查询,即T1已提交,T2不提交。
(8)再执行Select * from sc where sno=’s07’,解释结果。对发生了故障的事务T2,系统是如何做的?保证了事务的什么特性?

因为事务有ACID特性,事务T1提交,而T2没有提交,所以查看到的内容是T1执行后的内容。
保证了事务的ACID特性。
系统是如何做的?
事务的ACID特性是由关系数据库管理系统来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。

  1. 事务的回滚与设置检查点的关系。
    事务回滚:是数据库返回到事务开始的状态:事务在运行过程中发生某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,使数据库回滚到事务开始时的状态。
    检查点:出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘。 相反,数据库引擎定期发出对每个数据库的检查点命令。 “检查点”将当前内存中已修改的页和事务日志信息从内存写入磁盘,并记录有关事务日志的信息。对于自动、手动和内部检查点,在数据库恢复期间只有在最新检查点后所做的修改需要前滚。 这将减少恢复数据库所需的时间。

六、实验小结(包括收获、心得体会、注意事项、存在问题及解决办法、建议等)

1.事务的概念( Transaction )
所谓事务是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
关系数据库中,事务可以是一条SQL语句、一组SQL语句。
在SQL语言中,定义事务的语句有三条:
Begin Transaction 开始
Commit 结束
Rollback 回滚
2.事务开始:BEGIN TRANSACTION
标记一个显式本地事务的起始点。BEGIN TRANSACTION将 @@TRANCOUNT 加 1。
语法结构:
BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable
[ WITH MARK [ ‘description’ ] ] ]
参数说明:
transaction_name:是给事务分配的名称。transaction_name 必须遵循标识符规则,但是不允许标识符多于 32 个字符。仅在嵌套的 BEGIN…COMMIT 或 BEGIN…ROLLBACK 语句的最外语句对上使用事务名。
@tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
WITH MARK [‘description’]:指定在日志中标记事务。Description 是描述该标记的字符串。
如果使用了 WITH MARK,则必须指定事务名。WITH MARK 允许将事务日志还原到命名标记。
3.事务提交:COMMIT TRANSACTION
标志一个成功的隐性事务或用户定义事务的结束。如果 @@TRANCOUNT 为 1,COMMIT TRANSACTION 使得自从事务开始以来所执行的所有数据修改成为数据库的永久部分,释放连接占用的资源,并将 @@TRANCOUNT 减少到 0。如果 @@TRANCOUNT 大于 1,则 COMMIT TRANSACTION 使 @@TRANCOUNT 按 1 递减。
语法结构:
COMMIT [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] ]
参数说明:
transaction_name:Microsoft SQL Serve 忽略该参数。transaction_name 指定由前面的 BEGIN TRANSACTION 指派的事务名称。transaction_name 必须遵循标识符的规则,但只使用事务名称的前 32 个字符。通过向程序员指明 COMMIT TRANSACTION 与哪些嵌套的 BEGIN TRANSACTION 相关联,transaction_name 可作为帮助阅读的一种方法。
@tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
4.事务回滚:ROLLBACK TRANSACTION
将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点。
语法结构:
ROLLBACK [ TRAN [ SACTION ]
[ transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable ] ]
参数说明:
transaction_name:是给 BEGIN TRANSACTION 上的事务指派的名称。transaction_name 必须符合标识符规则,但只使用事务名称的前 32 个字符。嵌套事务时,transaction_name 必须是来自最远的 BEGIN TRANSACTION 语句的名称。
@tran_name_variable:是用户定义的、含有有效事务名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
savepoint_name:是来自 SAVE TRANSACTION 语句的 savepoint_name。savepoint_name 必须符合标识符规则。当条件回滚只影响事务的一部分时使用 savepoint_name。
@savepoint_variable:是用户定义的、含有有效保存点名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。

七、附录(包括作品、流程图、源程序及命令清单等)

temp.sql

-- 在学生-课程数据库上完成如下操作。
--  1.事务的定义
-- (1)了解事务运行模式
-- 在查询编辑器中输入如下语句并执行,最后语句中包含语义错误,查看前面语句执行情况。了解在没有显示定义事务的情况下,DBMS默认每个SQL语句就是一个事务。发生错误后,只回滚一个SQL语句。
--select * from sc
--select * from c
insert into C(CNO,CN) values('c21','rjgc')
insert into C(CNO,CN) values('c22','txyl')
insert into C(CNO,CN) values('c21','gmtjs')-- (2)显示定义事务
-- ① 定义一事务,包含前面的三条插入语句,最后语句中包含语义错误。执行该事务,与前面的执行结果进行比较,分析结果。
BEGIN TRANSACTION
insert into Course(CNO,CN) values('c22','txyl')
insert into Course(CNO,CN) values('c21','gmtjs')
insert into Course(CNO,CN) values('c21','rjgc')
ROLLBACK
-- 执行结果:
select * from course-- 创建一个事务,以ROLLBACK结尾时,只要事务中有一句不能执行,那么都不会执行。-- ② 修改定义中的错误,以rollback和 commit两种方式结束事务。查看被更新表的数据,说明rollback的 commit不同。
-- 不同之处:
-- 以rollback结尾时,不论成功与否,都会回滚;而以commit结尾时,只要能成功执行,就能进行更改。
BEGIN TRANSACTION
insert into Course(CNO,CN) values('D22','txyl')
insert into Course(CNO,CN) values('D21','gmtjs')
COMMITBEGIN TRANSACTION
insert into Course(CNO,CN) values('E22','txyl')
insert into Course(CNO,CN) values('E21','gmtjs')
ROLLBACKselect * from course-- 2.事务故障恢复
-- 事务故障破坏事务的原子性。事务故障后,系统自动强行回滚(rollback)该事务。即利用日志撤销此事务已对数据库的更新,保持事务的原子性。对提供检测点的DBMS,事务的回滚与设置的检测点有关。
-- 在“学生—课程”学数据库上,执行下面的事务,分析结果,阐述设置存储点的作用。
begin tran t1
select * from sc
insert into SC(SNO,CNO) values('s01','c05')select * from sc
save tran t1
update sc set grade=60 where sno='s01' and cno='c05'select * from sc
rollback tran t1
select * from sc-- 比较每次查询的结果,说明 save tran t1的功能。把rollback tran t1改为rollback看一下,结果如何?-- 第一次select       第二次select         第三次select       第四次select
-- Save tran t1的功能是将这条语句上面所执行的事务记录下来,执行rollback tran t1后,会回到刚才记录的那个状态。-- 把rollback tran t1改为rollback,执行结果:-- 第一次select       第二次select         第三次select       第四次select
-- 若把rollback tran t1改为rollback,会发现回到最初事务没有执行的那个状态。-- 3.事务的并发控制
-- 大多数DBMS为并发事务提供封锁请求,有共享锁和排它锁。SQL SERVER中,为了模拟并发环境,打开多个查询窗口即可。
-- 在“学生—课程”数据库上完成如下操作。
-- (1)在一个查询窗口中执行事务T1
begin tran T1
SELECT * from SC where SNO='s07'-- (2)在另一个查询窗口中执行事务T2,此时事务T1还未结束。
begin tran T2
SELECT * from SC where SNO='s07'
-- 比较T2与T1的结果。
-- T1和T2的执行结果一样-- (3)返回事务T1继续运行事务,进行数据修改并查询,例如:
Update sc set grade=grade+2 where sno='s07'
Select * from sc where sno='s07'
-- 观察结果。-- (4)回到事务T2,事务T2进行同样操作,进行数据修改并查询。
Update sc set grade=grade+2 where sno='s07'
Select * from  sc where sno='s07'
-- 说明此时的状态。
-- T2一直在执行中-- (5)回到事务T1,提交事务。即执行commit。
-- (6)返回到事务T2,说明此时的状态和结果。
-- T2成功执行,并且在T1加2的基础上又再加上2。-- (7)然后强行关闭两个查询,即T1已提交,T2不提交。
-- (8)再执行Select * from sc where sno=’s07’,解释结果。对发生了故障的事务T2,系统是如何做的?保证了事务的什么特性?-- 因为事务有ACID特性,事务T1提交,而T2没有提交,所以查看到的内容是T1执行后的内容。
-- 保证了事务的ACID特性。
-- 系统是如何做的?
-- 事务的ACID特性是由关系数据库管理系统来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
-- 数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。-- 1. 事务的回滚与设置检查点的关系。
-- 事务回滚:是数据库返回到事务开始的状态:事务在运行过程中发生某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,使数据库回滚到事务开始时的状态。
-- 检查点:出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘。 相反,数据库引擎定期发出对每个数据库的检查点命令。 “检查点”将当前内存中已修改的页和事务日志信息从内存写入磁盘,并记录有关事务日志的信息。对于自动、手动和内部检查点,在数据库恢复期间只有在最新检查点后所做的修改需要前滚。 这将减少恢复数据库所需的时间。

SQL 实验项目8_事务控制相关推荐

  1. SQL 实验项目5_触发器

    大三上:数据库系统概论所有实验报告和课后作业 文章目录 一.实验目的及要求 二.实验内容(或实验原理.实验拓扑) 三.实验设备与环境 四.实验设计方案(包括实验步骤.设计思想.算法描述或开发流程等) ...

  2. SQL操作的组成部分-事务控制

    事务是并发控制的基本单位,也是恢复的基本单位.在SQL中支持事务的概念.所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体.

  3. SQL 实验项目6_存储过程

    大三上:数据库系统概论所有实验报告和课后作业 文章目录 一.实验目的及要求 二.实验内容(或实验原理.实验拓扑) 三.实验设备与环境 四.实验设计方案(包括实验步骤.设计思想.算法描述或开发流程等) ...

  4. SQL 实验项目3_1-数据更新

    大三上:数据库系统概论所有实验报告和课后作业 文章目录 一.实验目的及要求 二.实验内容(或实验原理.实验拓扑) 三.实验设备与环境 四.实验设计方案(包括实验步骤.设计思想.算法描述或开发流程等) ...

  5. SQL 实验项目4-数据库安全性

    大三上:数据库系统概论所有实验报告和课后作业 文章目录 一.实验目的及要求 二.实验内容(或实验原理.实验拓扑) 三.实验设备与环境 四.实验设计方案(包括实验步骤.设计思想.算法描述或开发流程等) ...

  6. SQL 实验项目7_数据库设计

    大三上:数据库系统概论所有实验报告和课后作业 文章目录 一.实验目的及要求 二.实验内容(或实验原理.实验拓扑) 三.实验设备与环境 四.实验设计方案(包括实验步骤.设计思想.算法描述或开发流程等) ...

  7. 广州大学学生实验报告,进程控制与进程通信

                                                    广州大学学生实验报告 开课学院及实验室: 计算机科学与网络工程学院  电子楼418B        20 ...

  8. iBatis 事务控制 与 两表操作将SQL语句写入单表

    事务控制 示例: // move data from temp_table to work_tabletry {sqlMapClient.startTransaction();T03SlipWk or ...

  9. 在C#中使用COM+实现事务控制

    .NET技术是微软大力推广的下一代平台技术,自从.NET技术架构的正式发布,此项技术也逐渐走向成熟和稳定.按照微软的平台系统占有率,我们不难想象得到,在未来的一两年内.NET技术必定会势如破竹一般的登 ...

最新文章

  1. 《易学Python》——第6章 类与面向对象编程 6.1 类是什么
  2. 小乌龟游泳java_乌龟翻身那么痛苦,它们为什么还没有灭绝?
  3. DevExpress的TreeList实现自定义节点NodeCell的背景颜色和前景色
  4. OpenGL stencil test模板测试的实例
  5. CodeForces - 1110G Tree-Tac-Toe(博弈+构造)
  6. Linux 系统的硬链接和软链接详解
  7. 【C language】typedef的使用:结构体、基本数据类型、数组
  8. 下载Centos7 64位镜像
  9. MySQL 之 information_schema
  10. windows mysql 备份_Windows下MySQL数据库备份脚本(二) | 系统运维
  11. C#软件设计——小话设计模式原则之:接口隔离原则ISP
  12. 使用类名称创建实例并调用构造函数
  13. Python字符串格式()
  14. android图片资源加载和异常
  15. 对今日头条问答部分的预测-未来可能会挂掉
  16. 第十六篇 晶体管之电流放大器
  17. Shell脚本三种循环
  18. Neurosynth package安装及使用
  19. linux服务器如何设置双网卡,linux服务器设置(双网卡共享上网)
  20. 如何在新版本的万能地图下载器内切换地图

热门文章

  1. 关于QT中“崩溃”问题
  2. 华为通信基础面试题库以及答案
  3. Tailwind Size
  4. 对java封装特性的一些浅薄认识
  5. java 打印详解_Java格式化输出printf()详解
  6. 面向流动人口管理的人脸验证系统设计及实现 论文+答辩PPT+项目工程文件
  7. 谷胱甘肽(GSH)修饰的CdTe/CdS量子点(GSH-CdTe/CdSQDs)|PEG修饰水溶性量子点ZnS:Mn
  8. Axure数据可视化BI大屏设计组件库
  9. 国外注册域名有哪些缺点?国外域名怎么转入国内?
  10. ElastaticSearch----top_hits,es获取聚合的相关文档结果