数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

1.系统的组成

(1)数据库

一个结构化的相关数据的集合。主要是通过综合汇总各个数据库用户的文件,除去不必要的冗余,然后使各个文件的数据项相互联系,从而形成整体数据结构。联系是数据库的重要特点,至于怎样实现这种联系,取决于数据库类型,类型不同,联系手段也不一样,这个问题在第二章详细讨论。数据库是集成化的,能为多种应用服务,它独立于应用程序,是数据处理系统的核心和管理对象。

(2)数据库管理系统DBMS

数据库系统中,DBMS是专门用于数据管理的软件。通常,DBMS提供数据库定义和数据装入功能。提供数据操纵(检索与数据存取操作),数据控制(安全性、完整性和并发控制)和数据库维护(数据库整理、修改与重定义)等功能。

DBMS提供应用程序与数据库的接口,允许用户逻辑地访问数据库中的数据,负责逻辑数据与物理地址间的映射,是控制和管理数据库运行的工具。

(3)支持数据库运行的硬、软件环境

① 硬件

硬件是数据库赖以存在的物理设备,包括CPU、存储器和其它外部设备。数据库系统要求很大的内存,用来存放系统程序、应用程序和表缓冲区。数据库系统对外部存储器(硬盘)有特殊要求,应配置大容量的磁盘设备,用来存放要长期保存和反复使用的大量数据。硬盘是一种能支持直接数据存取的外部设备,它为索引文件、链接文件、直接存取文件和倒排文件等文件组织形式和数据存取方法提供物理支持,是数据库系统不可缺少的设备。

② 软件

数据库系统是一个软件应用系统。计算机应用系统中,最基本的软件是操作系统,其它任何软件系统(包括DBMS)都必须在它的支持下工作。因此当选用某种DBMS时,必须选择能对DBMS提供支持的操作系统,要处理汉字,必须使用中文系统平台。

(4)应用程序

数据库为多用户共享使用,不同用户有不同业务要求,其所需要的数据,已由数据库设计者精心规划在数据库中。如何使用库中数据是用户的事,但其操作权限仅是数据库的一个子集。

(5)数据库管理员DBA(DataBase Administrator)

数据库系统中,人的因素起重要作用,应该把DBA看成系统不可忽略的一部分。大型数据库系统,要求配备专职DBA,其职责是对数据库进行管理和维护,保持数据库始终处于最佳工作状态。

数据库的建立,是由计算机专业人员和有关业务人员共同组成的班子,从需求分析开始,汇总所有用户的数据,进行分析、综合、提炼、画出全局逻辑结构图,搞清数据来龙去脉,定义各种数据,包括数据类型、结构、值域、来源、用途、使用权限、保密级别等等,构成数据字典。这个数据字典供系统参考使用。

数据库系统以硬件为基础,在硬件基础上层层套上各种软件。外层依赖于内层支持,且可以调用内层但不必考虑内层细节。图中显示了DBMS在操作系统支持下与其它语言处理程序可以在一个系统中并存,用户可以根据自己的需要选用DBMS或其它语言开发程序。注意,应用程序访问数据库中的数据,必须通过DBMS进行。

2.数据库系统的特点

数据库是个复杂的系统,难以用简洁的语言概括其全部特征。实际上关于什么是数据库,至今还没有一个公认的严格定义,当人们从不同角度描述数据库时,可能给出的定义出入很大。

例:C.J.Date在他的《数据库系统导论》一书中,从以下三方面描述了数据库

① 数据库是存储在磁盘或其它存储介质上的数据集合。

② 有若干应用程序以数据库为背景进行检索、修改、插入或删除等操作,还可能有一些联机远程终端用户访问数据库。

③ 数据库是集成的,包含许多用户的数据,每个用户只享用其中一部分数据,不同用户所使用的数据可以重叠,并且同-片数据可以为多用户共享。

J.Martin在《数据库组织》一书中对数据库是如下定义的:

数据库是存储在一起的相关数据的集合,这些数据没有不必要的冗余,能为多种应用服务;数据的存储独立于程序;对数据库的插入、修改和检索均能按一种公用的和可控的方法进行;若在一个系统中,存在着结构上完全分离的多个数据表,则称该系统为一个数据库集合。

如上所述,对什么是数据库,从不同角度描述的差别可能很大,但对数据库应具有的基本特点,认识是一致的。我们也应从它的基本特点去认识数据库。数据库有哪些特点?

(1)数据独立

数据独立是数据库方式管理数据的基本优点,也是数据库系统追求的目标。数据独立的含义是数据的存储独立于应用程序,保证数据的改变不致或很少影响应用程序。

数据独立又有两个含义:物理数据独立性和逻辑数据独立性。

物理数据独立性,指数据库物理结构(包括数据的组织和存储、存取方法、外部存储设备等)发生改变时,不会影响到数据库的逻辑结构,而应用程序使用的是逻辑数据,因此可以不必改动应用程序。

逻辑数据独立性,指由于某种原因使数据库的全局逻辑结构发生改变时,用户的应用程序不需要改动。似乎数据库并未发生变化一样。这是因为应用程序是根据该用户的数据视图编写的,仅是全局逻辑数据的一个子集,全局结构变化与否与具体用户无关,只要能从全局导出用户的局部视图就行。

以上两种数据独立性,是由DBMS所提供的映像功能实现的。

(2)数据共享

是指不同用户可以使用同一个数据库,各自取出他们所需要的子集,而且允许子集任意重叠。这是由于数据集成带来的好处。不过当碰巧多个用户同时对同一数据更新时,要进行控制,避免数据发生矛盾,一般DBMS都具有并发控制功能。

(3)减少了数据冗余

数据库方式,数据是集成化的,应用程序使用的逻辑文件是取自整体的子集,尽管一个数据可能出现在不同的逻辑文件中,但物理存储只有一次,这就减少了数据冗余。

数据冗余有时难以避免,甚至有时为了某种需要有意地重复存储数据而带来其它方便,所以只说减少数据冗余而不提“避免”二字。冗余数据要占用空间,有时减少了冗余,但需要数据时要利用CPU运算从其它数据中推算过来而影响速度,所以有时会采用以空间换速度,适当的冗余可大大减少运算量,提高处理速度。

(4)数据的安全性与完整性

安全性:指数据保密,为防止数据被窃或破坏,DBMS设置严密措施,层层防护。

完整性:指数据的正确性和一致性。

实现安全性和完整性保护,不同的DBMS有不同的方法,功能有强有弱。提升数据安全性和完整性要以CPU的时间开销为代价,会使数据库系统的处理速度下降。

(5)使用操作方便性

一个数据库系统允许使用多种程序语言(如VC、VB、Delphi、PB、C#等)与数据库打交道,而有关数据操作命令则由DBMS解释,每条操作命令,几乎相当于高级语言的一段子程序,因此在数据库环境下,程序设计效率大为提高。DBMS配有宿主语言,能提高管理效应。

oledb vc访问mdb数据库_SQL SERVER数据库技术-1相关推荐

  1. oledb vc访问mdb数据库_vc实战oledb编程

    VC 中用 ADO 和 DataGrid 控件显示和更新数据库中的数据分类: VC 编程 2010-07-06 15:58 1157 人阅读 评论(0) 收藏 举报 VC 中用 ADO 和 DataG ...

  2. oledb vc访问mdb数据库_VC中连接mdb数据库及其数据读取方法

    最近在做一个兼职,涉及到利用vc连接mdb数据库的问题. 先介绍一下第一种方法: _ConnectionPtr m_pConnection; CoInitialize(NULL); //对连接进行初始 ...

  3. php实现sql server数据导入到mysql数据库_SQL Server数据库导入MySQL数据库的体验_MySQL...

    SQL Server 因工作需要,要将存放在sql server数据库中的数据全部导入到mysql数据库中,在网上搜集相关资料,找到两种方法,现在分别谈谈对他们的看法. 第一种是安装mysql ODB ...

  4. oledb vc访问mdb数据库_一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE...

    这是一个.net下操作数据库(结构数据库)的工具类,支持sqlserver.oracle.mysql.postgres.sqlite.access等常见数据库. 注意:它并不是一个orm工具(常见的o ...

  5. oledb vc访问mdb数据库_VC++程序中访问ACCESS 数据库使用用户名和密码

    此网站选择Access进入查看ADO 使用连接数据库的字符串,如使用到带用户名和密码连接Access数据库要用到以下条目: 红线标注的为使用连接数据库时设置的字符串,如果使用到用户Admin,密码Ad ...

  6. dbnetlib sqlserver不存在或拒绝访问_SQL Server数据库损坏和修复

    常见错误解读 823错误 错误信息是:"在文件'%ls'中.偏移量为%#016I64x的位置执行%S_MSG期间,操作系统已经向SQL Server返回了错误%ls." " ...

  7. server sql top速度变慢解决方案_SQL Server数据库查询速度慢的原因和解决方法

    SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...

  8. sqlsever Java监控_SQL Server数据库状态监控 - 错误日志

    无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Se ...

  9. sqlserver2014补丁速度慢_SQL Server数据库查询速度慢的原因和解决方法

    问 SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...

最新文章

  1. python中关于操作时间的方法(一):使用time模块
  2. 操作系统的极简教程(一)
  3. Java用map实现沁园春_QQ飞车:小钰挑战沁园春影子记录,成为了这张地图的赛道之王!...
  4. Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
  5. java+jsp+sqlserver 2008+Tomcat实现一个简单的搜索引擎
  6. Java 算法 开心的金明
  7. php获取视频大小代码怎么写,利用php获得flv视频长度的实例代码
  8. u盘盘符不显示 win10_电脑插上优盘不显示怎么办_win10电脑插上优盘不显示弹窗的处理方法...
  9. google的RateLimiter限流器的使用
  10. Practical GameMaker Projects 免积分下载
  11. 抖音最新风控体系研究
  12. 区分Android中的各种单位——in、mm、pt、px、dp、dip、sp
  13. 跌倒综述 Deep Learning Based Systems Developed for Fall Detection A Review
  14. mini2440一线触摸驱动代码的位置
  15. 服务器错误500-内部服务器错误。您查找的资源存在问题,因而无法显示。
  16. Observability:Influx
  17. FPGA驱动摄像头实现人脸识别(基于肤色)
  18. CCIE与HCIE那个含金量高些?
  19. win10网上邻居看不到别的共享电脑怎么样办
  20. 新人贴:MATLAB 错误使用 surf (line 74) X、Y、Z 和 C 不能是复数。

热门文章

  1. 使用C语言将一个数组首尾互换后输出,函数实现体会地址传递
  2. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
  3. 为啥led灯用一年后暗了很多_想把卤素灯换掉,选LED灯为什么比选氙气灯
  4. [图论]欧拉回路的个数
  5. 《结对-结对编项目作业名称-测试过程》
  6. struts2的文件上传机制
  7. WPF 自定义快捷键命令(COMMAND)(转)
  8. TFS 解除独占锁定
  9. strcat strcpy 源代码,用指针去实现
  10. 窗口之间值、控件的传递