操作系统和数据库基础

  • 进程与线程的差别

    进程是程序的一次执行。线程可以理解为进程中执行的一段程序片段。在一个多任务环境下中下面的概念可以帮助我们理解两者的区别。

    进程间是独立的,这表现在内存空间,上下文环境上;线程运行在进程空间里。一般来讲(不使用特殊技术),进程无法突破进程边界存取其它进程内的存储空间;而线程由于处于线程空间内,所以同一进程所产生的线程共享内一内存空间。同一进程中的两段代码不能够同时执行,除非引入线程。

    线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资料。

    进程和线程都可以有优先级。

  • 进程间通信的方式

    现在最常用进程间通信的方式有信号,信号量,消息队列,共享内存。

  • 线程同步的方法

    临界区,互斥量,信号量,事件。

  • DLL 文件的作用

    (1)拓展应用程序

    (2)便于程序员合作

    (3)节省内存

    (4)共享程序资源

    (5)解决应用程序本地化问题

  • 什么是存储过程?

    存储过程是一组为了完成特定功能的 SQL 语句集。

  • 什么是触发器?

    触发器是一个特殊的存储过程,它的执行不是由程序调动,也不由手工启动,而是由事件来触发。

  • 什么是事务?

    事务是访问并可能更新数据库中各种数据项的一个程序执行单元。

    (在关系数据库中,一个事务可以是一条SQL语句,一组 SQL 语句或整个程序)

  • 事务的几个特性

    (1)一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。

    (2)原子性:事务在完成时,必须使所有的数据都保持一致状态,而且在相关数据中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构都应该是正确的。

    (3)隔离性:由并发事务所做的修改必须与任何其他事务所做的修改相隔离。事务查看数据时数据所处的状态,要么是被另一并发事务修改之前的状态,要么是被另一并发事务修改之后的状态。即事务不会查看由另一个并发事务正在修改的数据。这种隔离方式也叫可串行性。

    (4)持久性:事务完成之后,它对系统的影响是永久的,即使出现系统故障也是如此。

  • 什么是 ADO?它与 ODBC 比起来哪种方式快?

    ADO(ActiveX Data Objects)是一个用于存取数据源的 COM 组件。它提供了编程语言和统一数据访问方式的 OLE DB 的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。

    ADO 更快。(这个网上争议很多)