数据库系统汇总十篇

时间:2023-03-01 16:21:14

数据库系统

数据库系统篇(1)

一、系统数据库

在SQL Server系统中,数据库可分为“系统数据库”和“用户数据库”两大类。用户数据库是用户根据实际需要创建的数据库,而系统数据库则是SQL Server内置的,它们主要是用于系统管理。SQL Server中系统数据库主要有以下几个:

1.master数据库

master数据库是最重要的系统数据库,它记录SQL Server系统级的信息,包括系统中所有的系统配置信息、登录账号、所有数据库的信息、所有用户数据库的主文件地址、SQL server的初始化信息。因此,如果master数据库不可用,则SQL Server将无法启动。

2.tempdb数据库

tempdb数据库用于存放所有连接到系统的用户临时表和临时存储过程,以及SQL Server产生的其他临时性的对象。tempdb是SQL Server中负担最重的数据库,因为几乎所有的查询都可能需要使用它。

在SQL Server关闭时,tempdb数据库中的所有对象都被删除,每次启动SQL Server时,tempdb数据库里面总是空的。

默认情况下,SQL Server在运行时tempdb数据库会根据需要自动增长。不过,与其他数据库不同,每次启动数据库引擎时,它会重置为其初始大小。

3.model数据库

model数据库又叫做模板数据库,它是系统所有数据库的模板,这个数据库相当于一个模子,所有在系统中创建的新数据库的内容,在刚创建时都和model数据库完全一样。

如果SQL Server专门用作一类应用,而这类应用都需要某个表,甚至在这个表中都要包括同样的数据,那么就可以在model数据库中创建这样的表,并向表中添加那些公共的数据,以后每一个新创建的数据库中都会自动包含这个表和这些数据。当然,也可以在model数据库中增加其他数据库对象,这些对象都能被以后创建的数据库所继承。

4.msdb数据库

msdb数据库由SQL Server(SQL Server Agent)安排报警、作业,并记录操作员。

二、数据库的物理结构

数据库的物理表现是操作系统文件,即在物理上,一个数据库由一个或多个磁盘上的文件组成。

1.数据文件

在SQL Server系统中,一个数据库在磁盘上可以保存为一个或多个文件,我们把这些文件称为数据库文件。数据库文件分成三类:主数据文件、次数据文件、事务日志文件。这种物理结构只对数据库管理员是可见的,而对用户是透明的。

(1)主数据库文件

主数据库文件包含数据库启动信息,并指向数据库中的其他文件。用户数据库和对象可存储在该文件中。每个数据库只能有一个主数据库文件,文件扩展名为.mdf。

(2)次数据库文件

次数据库文件是可选的,次数据库文件可用于将数据库分散存储到多个磁盘中,每个数据库可以有零个或多个次数据库文件,次数据库文件扩展名为.ndf。

(3)事务日志文件

事务日志文件用于记录对数据库的各种操作情况,对数据库进行操作时,对数据库内容的更改将自动记录到该文件中。事务日志文件的扩展名为.ldf,一个数据库可以有一个或多个事务日志文件。

因此,一个数据库至少由两个文件组成个,即一个主数据库文件和一个事务日志文件。

2.数据库文件组

为了方便管理,可以将多个数据文件组织成为一组,称为文件组。每个文件组对应一个组名,可以将文件组中的文件存放在不同磁盘,以便提高数据库的访问性能。

在SQL Server中,文件组有两种类型。

(1)主文件组

主数据文件所在的组称为主文件组。在创建数据库时,如果用户没有定义文件组,系统会自动建立主文件组。当数据文件没有指定文件组时,默认都在主文件组中。

(2)次文件组

用户定义的文件组称为次文件组。如果次文件组中的文件被填满,那么只有该文件组中的用户表会受到影响。

在创建表时,不能指定将表放在某个文件中,只能指定将表放在某个文件组中。因此,如果希望将某个表放在特定的文件中,必须通过创建文件组实现。

3.数据库文件和文件组遵循的规则

(1)一个文件或文件组只能被一个数据库使用。

(2)一个文件只能属于一个文件组。

(3)事务日志文件不能属于文件组。

三、数据库的逻辑结构

逻辑上,一个数据库由若干个用户可视的对象构成,如表、视图、角色等,这些组件称为数据库对象。用户利用这些逻辑数据库的数据库对象存储或读取数据库中的数据,直接或间接地利用这些对象在不同应用程序中完成存储、操作和检索等工作。逻辑数据库的数据库对象可以从数据库服务器管理平台中查看。

参考文献:

数据库系统篇(2)

2传统关系数据库面临的挑战

基于二维关系模型的数据库在数据管理的发展历程中是一个标志性的时期,数据结构化存储,冗余较低、程序和数据具有一定的独立性、易扩充等特点。随着Internet技术的发展,涌现出半结构化、非结构化数据,对这些结构复杂的大数据的高效实时多维分析的需求越来越多。传统的关系数据库从70年展至今,虽然应用范围较广技术较成熟,但在处理海量数据方面还存在许多不足。(1)关系模型结构制约了快速访问大数据的能力。在二维关系表中,依据属性的值来检索相应的元组,受这种方式的束缚,在检索数据过程中,将耗费一定的时间,从而使访问数据的时间较慢。在存储对象设计上虽然可以使用分区的方法,提高数据访问冲突,但在大量数据的前提下,分区技术改善的性能较微弱。(2)处理大数据的灵活性不足。在应用系统中,用户的各种查询需求经常发生变化,不受时间和操作对象的约束,用户希望随时随地都能快速得到反馈结果。关系型数据库需要专门的数据库维护人员对用户的查询要求进行优化处理,不能及时的反馈给用户查询结果,这使得使用关系数据库存储数据的企业不具备对大数据的快速响应能力。(3)处理复杂结构数据能力较弱。关系型数据库对现实数据的处理常见类型为字符、数值等,对于半结构化和非结构化数据的处理只限于二进制代码文件的存储,而现今用户对复杂结构数据的要求上升为识别、检索和多维分析,如何处理占总数据量85%的非结构化数据,是许多关系数据库产品需要解决的问题。(4)存储维护管理PB级数据导致成本不断增加。数据量递增使得企业在硬件存储上投资不断增加,虽然存储设备的投入成本在逐步降低,但总成本却在逐步提高。此外,大量复杂结构的数据维护工作也给数据库管理员增加了很多负担。

3大数据库技术

随着大数据技术的日趋完善,各大公司及开源社区都陆续了一系列新型数据库来解决海量数据的组织、存储及管理问题。目前,工业界主流的处理海量数据的数据库有四种,分别是列式数据库、内存数据库、键值数据库及流式数据库。

3.1列式数据库

采用列族存储数据,将经常被使用的数据放到一个列族中,例如,经常会查询学生的学号和姓名,而不是专业,这样把学号和姓名放到一个列族中,专业放到另一个列族中,该数据库通常用来存储分布式大数据,HBase是列式数据库的典型代表。

3.2内存数据库

对数据库中所有数据的操作都在内存中完成,一般数据库也有一定的缓存机制,对大部分数据的操作都包含从外存到内存的读取,这一过程在很大程度上降低了系统的性能。由于在内存中的读/写是以纳秒为单位的,所以内存数据库的性能极高,Spark是内存数据库的典型代表。

3.3键值数据库

该数据库主要借助哈希表的结构,使用一个特定的键和一个指向特定数据的指针,利用键来完成对数据库中数据的添加、删除和查询操作,这种结构具有很好的扩展性,使系统具有较高的性能,Memcached、Redis、MemcacheDB都是键值数据库的典型代表。

3.4流式数据库

基本理念是数据的价值会随着时间的流逝而不断减少,因此,需要使式数据库来实现流式计算。流式计算处理模式是将源源不断的数据视为数据流,它总是尽可能快速地分析最新的数据,并给出分析结果,也就是尽可能实现实时计算。典型流式数据库:SparkStreaming、Storm。

4大数据SQL

数据库系统篇(3)

1、前言

随着科学技术的发展,人类进入信息大爆炸的阶段,各类信息极度丰富,数字信息技术和网络技术高度发达,掌握计算机基本知识和具备应用计算机技术的能力是当代人必备的基本素质。作为信息技术的核心,数据库技术是信息工程学科中最重要的成果和工具之一,是计算机科学技术中发展最快、应用最广的技术之一。管理信息系统MIS、办公自动化OA和决策支持系统DSS等系统的核心都离不开数据库技术的支持。本文就计算数据库管理系统带来的思考进行探讨。

2、数据库的简介

2.1数据库技术发展过程

数据库技术产生于20世纪60年代末,是数据管理的最新技术,也是计算机科学的重要分支。数据管理技术的发展,与计算机硬件、系统软件及计算机应用的范围有密切的联系。数据库发展分为:人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库系统阶段。

人工管理阶段:在20世纪50年代中期,计算机主要用于科学计算,没有普及到日常生活当中,计算技术不发达,没有磁盘等存储介质,无法进行数据存储。在进行管理的时候一个应用程序对应管理一个数据集,数据管理只能由应用程序完成,数据不能共享、缺乏独立性,造成数据的冗余,并且数据不能保存,如要再次进行同样的计算则必须进行重复性操作。

文件系统阶段:到了20世纪50年代后期到60年代中期,计算机技术得到了发展,计算机开始应用于信息管理。这时,计算机数据管理采用的是文件系统阶段,应用程序管理数据文件时,不是像人工管理阶段中进行直接的一对一的管理,而是计算机对文件系统进行管理,而文件系统去管理数据文件,这样的管理形式,数据的独立性差,但可以进行数据的长时间保存,相对于人工管理阶段有了很大的改善!

数据库系统阶段:在20世纪60年代后期,计算机性能得到了大幅度的提高,特别出现了大容量的存储介质,而且其价格便宜。在这个时期,人们对计算机数据的管理就采取了比文件管理更加高级的手段——数据库系统阶段。应用程序通过数据库管理系统直接对数据库进行管理,此时的数据文件已经不是单独存在,而是统一存储于数据库当中,这样数据的独立性增强,共享程度提高,冗余程度减小。

高级数据库系统阶段:从20世纪70年代开始,数据库技术的发展步伐加快,其数据库的方法进行的进一步的完善,数据库应用的领域也广泛的扩大,在许多方面取得了很大的研究成果。

2.2数据库系统

数据库系统:简称DBS,是指拥有数据库技术支持的计算机系统。它包括有,计算机系统、数据库、数据库管理系统、数据库应用系统和有关人员。其中主要包括三方面:数据库、数据库管理系统和人员。

数据库:在计算机存储设备上按照一定的格式进行信息的存放。这样就结束了人工管理数据的那种繁杂的工作,人们可以事先把要管理的数据存放进去,这样,就可以实现对数据长时间的、大量的、有组织的管理数据。

数据库管理系统:在数据存储在计算机当中后,我们就要对这些数据进行管理,数据库管理系统就实现了这个功能。它是位于数据库和管理者之间的一个管理软件,管理者可以通过这个软件对数据进行定义、查询、插入、修改、建立、维护等操作。

人员:主要包括有数据管理员、程序员和终端人员。数据管理员可以对数据进行添加、删除、修改等操作;程序员一般对数据库管理系统进行维护,升级等;终端人员主要是对已经成型了的数据库进行使用,最后进行终端操作。

2.3数据库模型

数据库系统常用的数据模型有三种:层次模型、网状模型、关系模型。

层次模型:以树状结构进行表示,有“树根”、“树叶”,每个实体放在不同层次上,表示不同的关系。上级节点与下级节点之间为一对多的关系。在层次结构中只有一个根节点,其他节点向上只有一个父节点,向下可以有若干子节点。

网状模型:一般描述的是“多对多”的关系,其实质就是一个节点的连通图。

关系模型:这是数据库中最重要的模型,是用二维表来描述实体之间联系的一种结构模型。在二维表中,一行叫做一条记录,一列叫做一个字段,整个表表示一个关系,其关系不可再分。

3、用Access软件开发的数据库系统实例分析

Access是微软公司开发的一个数据库软件,是一种关系型的桌面数据库管理系统,其操作性简单、界面采用总控窗体的形式。

这些年,由于经济的迅猛发展,企业发展极为迅速,企业人员增加,对企业来说,人员的信息越来越多,对信息处理的要求也越来越高,手工管理的弊端日益显露,解决这个问题的最好办法是显现教工管理的自动化,用计算机处理代替手工。由此,企业管理者利用Access编写了一个企业员工管理系统。员工管理系统是一个简单的数据库应用系统,它所实现的功能包括:

员工管理:管理员工的基本资料和工资,何以浏览、增加、修改和删除员工资料和工资信息。

管理者管理:管理者的基本信息以及管理者所管理的部门信息,可以浏览、添加、修改和删除管理者信息及其管理的部门信息。

工种管理:工作种类的信息录入、员工所干的工作种类信息以员工所干工作的工资信息查询。

经上述分析,可确定其模块如下:

通过模块,我们可以确定其数据库中的表,创建表,然后确定其表间关系,根据企业对数据的具体的需要,完成Access中的七个对象:表、查询、窗体、报表、页、宏和模块。

在完成了“员工管理系统”中所有的功能设计之后,就要对这些功能进行集成,以供用户方便使用,所以,要用到Access中的切换面板管理工具把各项功能集合起来。完成这个之后,整个企业员工管理系统就设计完成了。

该系统设计简单,但足以满足一些企业对员工管理的需要,。

4、结语

随着信息化的快速发展及计算机数据库技术的快速升级,数据库目前得到广泛的应用。数据库管理系统是实现数据库应用的有效组织系统,对计算机数据库管理系统进行研究希望能够有助于加深我们对相关知识的了解。

参考文献:

[1]《Access数据库技术实训教程》 张玲 刘玉玫 清华大学出版社

[2] 《Access数据库实用教程》 郑小玲 张宏 卢山 旷野 人民邮电出版社

数据库系统篇(4)

[9]

[15]

[16] Introduction to Native XML Databases, Kimbro Staken,

[17] /index.htm

[18] XML and Databases, Ronald Bourret, /xml/XMLAndDatabases.htm

[19] /TR/xml-infoset/

[20] /和

[21] Chapter 2 "Tamino―Software AG's Native XML Server", Harald Schoning, In book of "XML Data Management: Native XML and XML-Enabled Database Systems", Akmal B. Chaudhri, Awais Rashid, Roberto Zicari, Addisson-Wesley, March 2003

[22] Kweelt: More than just "Yet another framework to query XML!", Arnaud Sahuguet, In Proceedings of ACM SIGMOD International Conference on Management of Data, Santa Barbara, California, May 21-24, 2001. Software available at: cheops.cis.upenn.edu/Kweelt/

数据库系统篇(5)

一、教学目标

知识与技能:了解数据库的基本概念,理解数据库应用程序、数据库管理系统、数据库的关系;了解Access中数据库表、记录、字段的概念;学会使用Access浏览、修改、添加、删除记录,了解字段数据类型的选择。

过程与方法:通过在线注册,实践体验数据管理系统和数据库应用程序的作用,能根据实际情况获取数据库中的数据,学会归纳总结的学习方法。

情感、态度与价值观:体会使用数据库管理信息对我们学习、生活带来的影响,树立科学管理、使用信息资源的意识,体验网络数据库的优势。

二、教学重点、难点

教学重点:数据库系统的几个概念间的关系,数据表记录的添加、修改、删除操作。

教学难点:数据库系统的几个概念间的关系,字段数据类型的确定。

三、学情分析

高一年级的学生已掌握Office办公软件的使用,如Word、PowerPoint和Excel,这些为学习本节课提供了一定的基础。数据库系统是新课程改革后加进来的内容,大部分学生都是第一次接触,相对来说掌握起来有一定的难度。

四、教学过程

1.创设情境,激情导入

师:同学们,平时我们经常会上网注册一些信息,今天请大家一起到老师自建的网站上来注册信息。请大家在IE浏览器的地址栏上输入地址192.168.1.10,进入“数据库系统学习平台”,完成注册。

学生登录网站,进行注册,并登录到主页。主页设计如图1所示。

师:好了,现在请大家点击主页左边的“显示已有用户”图标,看看我们班同学的注册信息。

学生看到了自己和其他同学的注册信息都显示在了网页上,如图2所示,觉得很好奇,课堂气氛活跃。

师:现在请同学们思考一下大家注册的信息为什么会显示在网页上?

学生纷纷议论。

生:肯定是我们注册的信息保存到教师机上了。

师:对了,很好。但是具体又是保存到了什么文件里了呢?

学生思考片刻,但没人回答。

师:这就是我们今天要学习的内容――数据库系统。

设计意图:引导学生进入“数据库系统学习平台”注册自己的信息。通过注册、登录和显示已有注册用户来激发学生的好奇心,并由此引入新课。

2.讲述新课

(1)理解数据库、数据库管理系统、数据库应用系统、数据库系统四个概念。

结合书本内容,组织学生思考如下问题:

①数据库是什么?请用自己的话来概括。

②我们通常用什么来建立和管理数据库?

③刚才的网上体验是数据库管理系统还是数据库应用系统?

④数据库系统包含了什么?

(2)四个概念间的关系。

教师展示PPT,并结合刚才的网上注册来理清四个概念之间的关系,如图3所示。

设计意图:由于概念比较抽象,设计时先让学生自学概念,再结合网上注册的例子以图的形式来帮助学生理清概念之间的关系。

(3)体验网上数据查询。

师:现在就请大家思考一下我们身边还有哪些地方用到了数据库?

学生讨论并回答。

师:同学们的回答都很好。现在请同学们点击主页左边的“查询成绩”图标,输入自己的考号来查询一下本次期中考试的成绩吧。

学生尝试根据考号来查询自己的成绩,真正感受到数据库高效检索的优势。

设计意图:通过设问引导学生理论联系实际,感受数据库系统在信息管理方面的优势,进一步体验数据库的应用。

(4)数据库中表、字段的概念及字段的数据类型。

师:现在请大家考虑本节课一开始的问题:大家刚才注册的信息保存到了哪里?

生:保存到教师机的数据库文件里。

师:对了。平时大家到互联网上注册的信息其实就是保存到相关网站对应的数据库文件里。在网上查询资料其实也是到相应服务器的数据库文件里查找。

教师用Access打开刚才学生们注册保存的数据库文件(userinfo.mdb),打开后让学生讨论Access和Excel的异同点。教师根据学生的讨论情况再介绍Access中数据表,记录、字段的概念。

(5)记录的修改、添加、删除。

打开桌面上“student.mdb”文件,完成以下操作:

第一步,将表中的姓名“赵丽雅”改为“赵雅丽”。

第二步,在表的最后添加一条记录,内容为“100 406010900”、“胡杨林”、“1”、“85”、“85”、“85”。

第三步,删除刚才添加的这条记录。

设计意图:让学生充当管理员的角色,知道如何在Access中添加、修改、删除记录,并且趁机引导学生要对数据库文件做好安全工作,树立科学管理、使用信息资源的意识。

(6)字段的修改、添加和删除。

教师打开注册信息表(info),并对这张数据表需要用到哪些字段、各个字段分别选择什么数据类型进行分析。组织学生讨论,完成以下问题的思考:

①如何修改字段名?

②如何在字段的后面添加另外字段?

③同一个字段内的值可以任意填写吗?

设计意图:通过层层深入的设问让学生明白如何设计字段。

3.随堂测试

点击主页上的“随堂测试”图标,完成课堂测试并当堂批改。

4.自我评价

学生点击主页上的“自我评价”图标,完成自我评价。

5.课后作业

以四人为一小组,合作设计一个图书借阅系统的数据库,要求包括用户信息表、图书信息表和借书记录表。

五、教学反思

数据库系统篇(6)

城市轨道(简称城轨)交通区间信号系统是安全性苛求系统。在区间安全性控制和防护设备的研制、生产、使用过程中,运用现代技术手段对设备的可靠性和安全性进行科学、高效、全面、按标准的检测和评估,以取代目前国内主要依靠专家经验进行的手工测试和实际线路试运行的非完善的方法,是十分迫切和必需的。在我国城市轨道交通领域,这方面的研究尚处于起步阶段。本文的研究正是基于这一背景。文中所建测试平台对城际铁路同样适用。

1区间信号系统测试平台的结构

城轨交通区间信号系统测试评估平台(以下简称平台)硬件采用分布式结构,如图1所示。平台由主控机、数据库机和仿真机组成[1]。被测系统通过网络与平台互联。网络通信采用TCP/IP协议。

图1平台分布式硬件结构示意图

平台软件系统结构框图如图2所示。其中:主控及测试案例自动生成子系统一方面向仿真子系统发送区间状态的仿真设置命令,另一方面动态监控现场信号状态等,实现测试案例的动态扩展和连续加载、测试结果的动态判定,并将测试结果存入数据

图2区间信号测试系统的软件结构库。传输信道仿真及区间现场仿真子系统为被测系统提供了一个模拟的传输仿真及现场环境。数据采集与处理子系统在被测系统与仿真信道之间进行数据处理及转换。测试用基础数据生成子系统通过读取区间拓扑数据文件,生成区间测试用基础数据。专用数据库子系统负责存储各种测试用基础数据和测试结果。本文重点阐述平台专用数据库子系统的研究与实现。

2平台专用数据库设计

平台的数据库不仅是一般意义上的数据库应用,它还负责协调各个子系统之间的数据联系。平台数据的类型与结构在一定程度上反映了整个平台的测试水平。基于对平台数据以及平台分布式结构的考虑,经过深入的比较,选择SQLServer作为平台的数据库开发工具。数据库设计一般分为四步:需求分析、概念设计、逻辑设计和物理设计。应用数据库设计理论,平台专用数据库设计的具体步骤如图3所示。

图3数据库的设计过程

2.1需求分析

平台的数据按其对时效性的不同要求可以分为动态数据和静态数据两大类[2]。动态数据是指具有严格时效性的数据,并且随着时间推移而动态刷新;静态数据则指相对稳定,不随时间变化的数据。

2.1.1动态数据及其传输

平台动态数据是维持平台正常运行的基础,主要包括下列3类数据:

·列车运行仿真命令、故障及干扰仿真命令。由主控机发出,用于控制仿真子系统进行相应仿真活动。

·区间信号设备状态及动作信息。指仿真机所模拟的实际区间信号设备的状态(如轨道区段是否有车占用等),主控机采集这些信息用于动态判定及显示测试过程的实际状态。

·测试结果信息。平台的测试结果记录是一种比较特殊的动态数据,包括经信道传输前后的实时电信号(数据)。它们是评价被测系统的重要依据,必须完整、正确地记录。

动态数据传输首先必须满足实时性要求,当不能及时传送时,根据数据特性的不同,或丢弃,或重发。例如被测系统发送的数据如不能及时传送,或数据有误,则该数据必须丢弃。主控机发给仿真子系统的故障及干扰仿真命令、列车运行仿真命令,在网络传输出现差错的情况下,为了确保命令被正确执行,必须重发。

2.1.2静态数据及其复制

生成和校验正确后的静态数据,在平台对被测系统进行测试的过程中不再变化,具有相对的稳定性。同样需要对静态数据进行存储、查询、校验和修改等操作。平台静态数据可分为以下几类:

·信号设备数据。记录发送端、接收端、闭塞分区的排序序列号与设备名称之间的映射关系,设备的一些属性特征。例如:闭塞分区的编号、名称、位置、长度,道岔的编号、名称、位置、类型等。

·基本数据。包括区间基本特征、钢轨线路的一次参数、钢轨线路四端网参数、列车运行线路等重要数据。其中区间基本特征数据包括闭塞制式、轨道电路类型、道碴与枕轨类型、坡度、曲线及长度等。列车运行线路数据包括线路运行方向、经由闭塞分区编号、经由发送端、接收端编号。

·区间现场拓扑数据。包括闭塞分区、发送端、接收端的位置和相互关系。这种描述有两方面用途,一方面用于现场仿真的动态显示,另一方面是作为测试用基础数据生成的原始依据。静态数据的复制是通过开放式数据库互连(ODBC)机制实现的。

2.2概念设计

在数据库设计中,笔者使用实体-联系(ER)模型作为概念设计的工具,得到概念设计的E-R图。E-R图由实体、联系和属性3个基本成分组成。测试用基础数据所处理的基本实体是城市轨道交通区间的信号设备:接收端、发送端、闭塞分区;设备之间的关系也就是最直接的实体间联系。通过E-R图,可以十分清楚地描述测试用基础数据的结构。图4为列车运行线路数据的E-R图。

图4列车运行线路ER图

2.3逻辑设计

关系数据库的逻辑设计过程是把概念设计的结果(如E-R图)转换成关系模式的过程。为了消除关系模式的存储异常问题,需要对其进行规范化。

在本子系统数据库模式的规范化设计过程中,既要考虑减少数据冗余、消除存储异常情况,也要考虑现场仿真、主控等子系统读取数据及运算的花费。规范化测试用基础数据的关系子模式包括:发送端表、接收端表、闭塞分区表、列车运行线路表、区间基本特征表、钢轨线路一次参数表、钢轨线路四端网参数表等。

2.4物理设计

物理设计要根据具体的数据库管理系统(DBMS)和相应的操作系统、计算机硬件所能支持的存储结构、存取方法以及资源来进行设计。SQLServer提供索引或表键机制来帮助SQLServer优化对查询的响应。在测试平台上,对结果数据的查询,是将记录计数号与测试项目的组合作为索引。这是因为大多数的查询都要直接或间接地将该两项作为SQL语句中WHERE子句后的首列。

3平台专用数据库接口的实现

平台采用客户端/服务器体系,后台数据库服务器采用SQLServer,前台应用程序开发工具采用VisualC++。前台应用程序对数据库的访问是通过ODBC机制实现的。

VisualC++对ODBC提供了两种支持:一种是API函数[3];另一种是对API函数进行封装的MFCODBC类,包括CDatabase(数据库类),CRecordSet(记录集类)和CRecordView(可视记录集类)。两种方式在平台上分别应用于不同的场合。

·ODBCAPI使客户应用程序能够从底层设置和控制数据库,完成一些高层数据库技术无法完成的功能。例如检测数据库是否连接、数据源配置是否正确等。

·MFCODBC类封装了多种数据库访问功能,使用简单方便。平台专用数据库定义了11个CRecord2Set类的子类,每一个子类对应专用数据库中的一个表,例如,B-JSSet类对应接收端表,B-BSFQSet类对应闭塞分区表。

4结语

建立在SQLServer上的平台专用数据库要兼顾通用数据库的设计要求和区间测试平台的特殊性。只有综合考虑这两方面的因素,才能使专用数据库既高效又安全。当然,随着平台水平的不断提高,专用数据库的功能必将随之扩展,日趋完善。

参考文献

数据库系统篇(7)

中图分类号TP393 文献标识码A 文章编号 1674-6708(2010)23-0242-02

数据库,就是若干数据的集合体。这些数据存在于计算机的外存储器上,而且不是杂乱无章地排列的。数据库中数据量庞大,用户访问频繁,有些数据具有保密性,因此数据库要由数据库管理系统进行科学地组织和管理,以确保数据库的安全性和完整性。数据库系统安全,包含两种含义,分别为系统运行安全和系统信息安全。

1 数据库系统的安全特性

1.1数据独立性

数据独立于应用程序之外。理论上数据库系统的数据独立性分为两种:1)物理独立性。数据库的物理结构的变化不影响数据库的应用结构其相应的应用程序。这里的物理结构是指数据库的物理位置、物理设备等;2)逻辑独立性。数据库逻辑结构的变化不会影响用户的应用程序,数据类型的修改、增加、改变各表之间的联系都不会导致应用程序的修改。

这两种数据独立性都要靠DBMS来实现。到目前为止*物理独立性已经能基本实现,慢逻辑独立性实现起来非常困难,数据结构一旦发生变化,一般情况,相应的应用程序都要作或多或少的修改。追求这一目标也成为数据库系统结构复杂的一个重要原因。

1.2数据安全性

一个数据库能否防止无关人员得到他不应该知道的数据,是数据库是否实用的一个重要指标。如果一个数据库对所有的人都公开数据,那么这个数据库就不是一个可靠的数据库。一般地,比较完整的数据库对数据女安全采取了以下措施:1)将数据库中需要保护的部分与其他部分相隔离;2)使用授权规则。这是数据库系统经常使用的一个办沾,数据库给用户ID号和口令、权限。当用户用此ID号和口令登录后,就会获得相应的权限。不同的用户或操作会有不同的权限。比如,对于一个表,某人有修改权,而其他人只有查询权;3)将数据加密,以密码的形式存于数据库内。

1.3数据的完整性

数据完整性通常表明数据在可靠性与准确性上是可信赖的,也意味着数据有可能是无效的或不完整的。数据完整性包括数据的正确性、有效性和―致性。

1)正确性。数据在输入时要保证其输入值与定义这个表时相应的域的类型一致。如表中的某个字段为数值型,那么它只能允许用户输入数值型的数据,否则不能保证数据库的正确性;2)有效性。在保证数据正确的前提下,系统还要约束数据的有效性。例如:对于月份字段,若输入值为17,那么这个数据就是无效数据,这种无效输入也称为“垃圾输入”。当然,若数据库输出的数据是无效的,相应的称为“垃圾输出”;3)一致性。当不同的用户使用数据库,应该保证他们取出的数据必须一致。因为数据库系统对数据的使用是集中控制的,因此数据的完整性控制还是比较容易实现的。

1.4并发控制

如果数据库应用要实现多用户共享数据,就可能在同一时刻多个用户要存取数据,这种事件叫做并发事件。书一个用户取出数据进行修改,修改存入数据库之前如有其他用户再取此数据,那么读出的数据就是不正确的。这时就需要对这种并发操作施行控制,排除和避免这种错误的发生,保证数据的正确性。

1.5故障恢复

当数据库系统远行时出现物理或逻辑上的错误时, 如何尽快将它恢复正常,这就是数据库系统的故障恢复功能。

2 数据库的备份

备份对数据库的安全来说是至关重要的。备份是指在某种介质上,如磁带储数据库或部分数据库的拷贝。

数据库的备份不足实时的,应该什么时候做,用什么方式做,这主要取决于数据库的不同规模和不同的用途。数据库的备份主要考虑以下的几个因素:备份周期;使用冷备份或是热备份:使用增量备份或是全部备份,或者两者同时使用:使用什么介质进行备份,备份到磁盘还是磁带:是人工备份还是设计一个程序定期自动备份等。数据库的备份大致有三种类型:冷备份、热备份和逻辑备份。

2.1冷备份

冷备份是在没有最终用户访问它的情况下关闭数据库,并将其备份。这是保持数据完整性的最好办法,但如果数据库太大,无法在备份窗口中完成对它的备份,该方法就不适用了。

2.2热备份

热备份是在数据库正在被写入的数据更新时进行。热备份严重依赖日志文件。在进行时,日志文件将业务指令“堆起来”,而不真正将任何数据值写入数据库记录。当这些业务被堆起来时,数据库表并没有被更新,因此数据库被完整地备份。

该方法有“些明显的缺点。首先,如果系统在进行备份时崩溃,则推在日志文件中的所有业务都会被丢失,因此也会造成数据的丢失;其次,它要求DBA仔细地监视系统资源,这样日志文件就不会占满所有的存储空间而不得不停止接受业务;最后,日志文件本身在某种程度上也需要被备份以便重建数据。需要考虑另外的文件并使其与数据库文件协调起来,为备份增加了复杂度。

由于数据库的大小和系统可用性的需求,没有对其进行备份的其他办法。在有些情况下,如果日志文件能决定上次备份操作后哪些业务更改了哪些记录的话,对数据库进行增量备份是可行的。

2.3逻辑备份

逻辑备份使用软件技术从数据库提取数据并将结果写入一个输出文件。该输出文件不是一个数据库表,但是表中的所有数据是一个映像。不能对此输出文件进行任何真正的数据库操作。在大多数客户机/服务器数据库中,结构化查询语言就是用来创建输出文件的。该过程有些慢,对大型数据库的全盘备份不实用。尽管如此,当仅想备份那些上次备份之后改变了的数据,即增量备份时,该方法非常好。为了从输出文件恢复数据,必须生成逆SQL语句。该过程也相当耗时,但工作的效果相当好。

参考文献

数据库系统篇(8)

一、NoSQL数据库概述

关系型数据库越来越无法满足云计算的应用场景,为了解决此类问题,非关系型数据库应运而生,由于在设计上和传统的关系型数据库相比有了很大的不同,所以此类数据库被称为“NoSQL(Not only SQL)”系列数据库。与关系型数据库相比,它们非常关注对数据高并发读写和海量数据的存储,在架构和数据模型方面作了简化,而在扩展和并发等方面作了增强。

二、NoSQL数据库优势

NoSQL数据库主要有以下优势:

扩展简单,去掉关系型数据库的关系型特性,数据之间无关系 这样就非常容易扩展。典型例子是Cassandra,由于其架构类似于经典的P2P,因此能够通过简单添加新的节点来扩展集群;

读写快速,典型例子是Redis,由于数据之间无关系,纯内存操作,因此其具有非常出色的性能,单节点每秒可以处理超过10万次的读写操作;

灵活的数据模型,NoSQL 数据库无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。在关系型数据库中,处理大数据量的表,增加字段的工作量是非常庞大的;

成本低廉,企业级数据库的价格很高,并且随着系统的规模增大而不断上升。高昂的建设和运维成本无法满足云计算应用对数据库的需求。NoSQL一般都是以开源的形式存在,可以聚集很多人的智慧,获得很多人得关注,可以减少高昂的成本支出。

三、NoSQL数据库数据模型

目前,主流的NoSQL数据库包括BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB以及Redis等。NoSQL常用数据模型包括以下3种。

(1)Column-oriented(列式)

列式主要使用Table这样的模型,但是它并不支持类似Join这样多表的操作,它的主要特点是在存储数据时,主要围绕着“(Column)”,而不是像传统的关系型数据库那样根据“行(Row)”进行存储,也就是说,属于同一列的数据会尽可能地存储在硬盘同一个页中,而不是将属于同一个行的数据存放在一起。使用列式数据库,将会节省大量I/O,并且大多数列式数据库都支持Column Family这个特性,能将多个列并为一个小组。

(2)Key-value(键值)

虽然Key-value这种模型和传统的关系型相比较简单,有点类似常见的HashTable,一个Key对应一个Value,但是它能提供非常快的查询速度、大的数据存放量和高并发操作,非常适合通过主键对数据进行查询和修改等操作,虽然不支持复杂的操作,但是可以通过上层的开发来弥补这个缺陷。

(3)Document(文档)

在结构上,Document和Key-value是非常相似的,也是一个Key对应一个Value,但是这个Value主要以JSON或者XML等格式的文档来进行存储,是有语义的,并且Document DB一般可以对Value来创建Secondary Index来方便上层的应用,而这点是普通Key-Value DB所无法支持的。

四、主要NOSQL系统的介绍

根据NOSQL常用的数据模型进行分类,并在每类中选出一种典型系统进行介绍。

(1)面向列存储系统――BigTable

Bigtable已经在超过60个Google的产品和项目上得到了应用,包括 Google Analytics、GoogleFinance、Orkut等。它具有用性广泛、可扩展、高性能和高可用性的特点。BigTable是一个是非关系的数据库,是一个稀疏的、分布式的、持久化存储的多维度排序Map,采用面向列的存储方式来提高数据的读取效率。

BigTable的多维体现在,它的键有三维,分别是行键(row key)、列键(column key)和时间戳(timestamp),行键和列键都是字节串,时间戳是64位整型;而值是一个字节串。可以用 (row:string, column:string, time:int64)string 来表示一条键值对记录。

BigTable其它特征:稀疏,分布式,持久化。持久化的意思很简单,Bigtable的数据最终会以文件的形式放到GFS去。Bigtable建立在GFS之上本身就意味着分布式,当然分布式的意义并不仅限于此。稀疏的意思是,一个表里不同的行,列可能完完全全不一样。

(2)面向键值存储系统――Dynamo

Dynamo是亚马逊的key-value模式的存储平台,它的最大特点是去中心化的分布式系统,Dynamo 的主要特性:首先系统成本低 Dynamo 不像一些商用数据库产品,需要昂贵的服务器来得到良好的性能,而在 Dynamo上,由于是利用一堆廉价机器来存数据,于是你可能只需要很少的钱买个普通机器加入到集群里就行了;其次,Dynamo 是一个面向键值存储,因此他不支持外键和关联查询什么的。其Value值是二进制存储的,所以查询条件也只能作用在 Key 上; 第三,配置简单的分布式存储 - 这是由于 Dynamo 是去中心化地设计,在集群中它的每一台机器都是对等的,不像 MongoDB 这样的中心化设计,于是它也不会有单点问题。

(3) 面向文档存储系统――MongoDB

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。它是一种可扩展的,高性能的,开源的NoSQL数据库,用C++编写的。传统的数据库由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB同样也是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。文档类似于json的键值对。{“name”:“jack”,“age”:15};集合是一组文档的集合。一个集合下的稳定无模式限制。

五、各NOSQL系统与关系型数据库的比较

通过以上三种不同结构的NOSQL系统的介绍,我们可以比较出NoSQL数据库与传统的关系型数据库有很大不同,其不同的地方主要体现在查询、架构、读写特性、扩展性以及负载策略等几个方面,下面选取当今最流行的开源的关系型数据库MySQL与三种NOSQL数据库系统做一个比较,如下图所示。

参考文献

数据库系统篇(9)

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)16-3770-02

SQL Server 2005是微软公司具有里程碑意义的企业级数据库产品。既是安全、可靠、高效的企业级数据管理平台又是先进、一体化的商业智能平台以及极具扩展性和灵活性的开发平台。本文以学生成绩管理系统为例,来介绍数据库系统中数据的完整性。

数据的完整性是指数据的精确性和可靠性,主要用于保证数据库中数据的质量。可以从两个方面来理解数据的完整性:(1)数据的准确性,即每个字段的取值必须满足一定的数据类型、取值范围和约束等;(2)数据的一致性,即相关表格各字段的取值必须互相匹配。在数据库应用系统中,保证数据的完整性是设计数据库的最基本的要求;数据完整性设计的好坏,直接关系到数据库系统的正确性、一致性和可靠性,甚至关系到整个数据库系统的成败。

当我们在数据库系统中使用INSERT、DELETE和UPDATE语句修改数据库时,数据的完整性就有可能遭到人为的破坏。为了保证数据的正确性,为了保护数据库内容的一致性,可以通过SQL Server对数据库添加一个或多个数据完整性约束。这些约束即可以限制数据库中字段的取值,也可以保护数据库定的数据不被任意删除。

在SQL Server数据库系统中,数据的完整性主要有以下3类:

1)实体完整性; 即保证表中的每一行数据在该表中是唯一的。为了保证实体完整性, 必须指定表中的一个字段或多个字段的组合作为它的主键(primary key) 。一个表只能含有一个主键,而且主键的值不能为空,不可重复。

2)域完整性: 是指数据库表中的字段必须满足某种特定的数据类型或约束,数据类型是指某个字段的取值必须满足一定的数据格式,例如,日期字段必须是datetime或smalldatetime,约束可以包括限制类型、限制格式或限制可能值的范围等。

3)参照完整性:是指在数据库表中输入或删除记录时,包含主关键字(primary key)的主表和包含外关键字(foreign key)的从表的数据必须对应一致,保证了表之间数据的一致性。防止数据的丢失或无意义的数据在数据库中扩散。

在SQL Server 2005中可以通过两种方法来实现数据完整性:定义表格的完整性约束以使用索引和触发器。

1 定义表格的完整性约束

该方法是在sql语句中,通过添加约束来实现数据的完整性。主要约束有:非空(not null)约束、默认值(default)约束、唯一(unique)约束、主键(primary key)约束、外键(foreign key)约束、检查(check)约束、默认值(default)、规则(rule)等。这种方法的主要特点是定义简单、安全可靠、维护方便。

1)非空约束(not null)是指某个字段的取值在没有指定默认值的情况下不能为空;默认值(default)约束是指当用INSERT语句向数据库表中插入数据时,如果没有为某一个字段指定数据,SQL Server 会自动输入预定值,每个字段只能有一个默认值约束;检查约束(check)是用来验证字段输入内容的规则,是指某一个字段必须满足检查约束的条件,若不满足,数据就无法正常输入,可以对表中的每个字段设置检查约束。

例如,在学生成绩管理系统中,创建学生信息表时,限定学号Sno、姓名Sname、性别Ssex出生日期Sbirthdate、籍贯Sborn等列值不允许为空; 性别Ssex的检查约束为“男”或“女”。

Create table student

(

Sno int not null,

Sname char(10) not null,

Ssexchar(2) check (Ssex=‘男’ or Ssex=’女’) not null,

Sbirthdate smalldatetime not null,

Sborn char(50) not null

)

执行sql语句后,当向学生表student里录入数据时,上述字段必须有内容,不能为空,性别Ssex字段只能接受“男”或“女”两个取值,否则数据不能成功插入到数据库中。

2)主键约束(primary key)和唯一约束(unique),二者都是指某个字段或某几个字段组合取值的唯一性,防止在该字段或字段的组合中出现重复的值。一个表中,可以包含多个唯一约束,但只能有一个主键约束,唯一约束指定的列可以为空,但主键约束所在的列不允许为空。

例如,创建系部信息表时,对列系部编号Dno创建主键约束,对系部名称Dname创建唯一约束。

Create table department

(

Tno int not null primary key,

Tname char(10) not null unique,

)

执行语句后,当向系部信息表department中录入数据时,字段Tno和Tname不能录入重复值。

3)外键约束(foreignkey),是指如果两个表有共同的字段,可以利用外部关键字与主关键字将两个表关联起来。包含主关键字(primary key)的主表和包含外关键字(foreign key)的从表的数据必须对应一致,保证了表之间数据的一致性。例如,在学生信息表中,学生的学号Sno是该表的主键,同时它也是成绩表的外键,成绩表中学号Sno字段下的数据必须和学生信息表中的学号Sno一致。

4)默认值(default),类似于前面提到的默认值(default)约束,也是用来设置字段的默认值输入。它与默认值约束不同的是,它是一种数据库对象,在数据库中创建默认值对象后,可以将其绑定到多个数据表的一个或多个列应用,而默认值约束只能约束一个表中的列。

5)规则(rule), 类似于检查约束(check),是对存储在表中的列或者用户自定义数据类型的取值范围的规定或限制,它与检查约束可以同时使用,一个表中可以有一个规则或多个检查约束,但检查约束不能直接作用于用户自定义的数据类型。规则也是一种数据库对象,不限定于特定表,可以将其绑定到其他表的列中使用。

例如, 学生信息表中的出生日期Sbirthdate列,为其创建一个日期规则rl_date,使出生日期在1900-1-1至2000-1-1之间,并将此规则通过存储过程绑定到教师信息表的出生日期字段列Tbirthdate上。

Create rule rl_date as @date>=’1900-1-1’and @date

Exec sp_bindrule ‘rl_date’,’teacher.Tbirthdate’--将创建的规则绑定到teacher的Tbirthdate字段列

执行语句后,当向学生信息表和教师信息表里录入数据时,出生日期字段只能接受1900-1-1至2000-1-1之间的数据。

2 使用索引和触发器

1)索引(index)是一种重要的数据对象,是指表中数据和相应存储位置的列表。通过创建索引,可以提高数据的查询效率,这是索引在数据库中最重要的作用。此外,索引还类似于唯一约束(unique),可以用来保证列值的唯一性。

2)触发器(trigger)是一种特殊类型的存储过程,但不需要用EXEC命令调用,而是在某个指定的事件执行时被激活,触发器可以指定一定的业务规则,用于约束、默认值和规则的完整性检查,防止对数据进行不正确、未授权或不一致的修改,还可以完成难以用普通约束实现的复杂功能的限制。

通过上述分析可见,在SQL Server2005数据库应用系统中,可以通过多种方法来实现数据的完整性,每种方法各有不同的特点,在实际应用过程中,可根据各数据库系统不同的需要,灵活选择合适的一种或多种方法来建立数据的完整性机制。

数据库系统篇(10)

一、 数据库信息系统数据字典中数据的获取途径

数据库中对数据进行归类整理后形成的数据集便称作数据安典。数据字典具有维护数据库系统的重要作用,按其用户的不同可分为主动型数据字典和被动性数据字典。主动型数据字典伴随着用户的使用而启动,是对总数据所进行的一种维护。而被动数据只用于存储相关数据供读者参考。我们在进行数据信息的获取时主要从动态获取和静态获取两方面进行。当数据处于静态获取时机时,我们可以利用FOXDOC的文本信息进行数据的获取,也可以利用DBF的直接被读取文件来获取。由于动态信息只能在所运行的系统中实时取得,因此我们可以通过FOXPRO管理信系系统资源的方式进行数据的实时采集或者可以通过利用函数和键盘对命令处理时获取被更新的数据信息。

二、 数据库信息系统中数据字典应用的技术优势

首先,处于元数据层中的应用字典能够知道数据间的关联关系。由于数据字典中包含了实际数据的真实定义,因而其对真实数据的字段顺序显示和显示规则比较清楚。另外一个方面,应用数据字典不是固定不变的,它主要是跟随文章环境的变化而变化,并在变化过程中实现其应用职能。其次,应用数据字典可进行用户扩展,那么用户的自定义信息也可以被它记载。由应用数据字典形成的界面称作智能型的用户界面。这种界面是基于应用数据字典的用户自定义信息规则运行形成的,这就促使了用户界面的统一。那么,用户在不熟悉的程序应用中就能够得到数据帮助。快速开发便基于这种界面而得以成为现实,并且让被生成的信息系统更具有稳定性。另外,不固定的动态界面使用户在程序应用中容易掌握操作,提高了学习效率和应用效率。再次,应用数据字典中提供了安全访问规则。用户所持有的角色为第一层安全级。当用户登录信息系统时,其角色便成为一种访问识别权限,当这种识别进入时,功能菜单便自动显示出用户角色权限所支持访问的内容。另外,角色权限的内容也包含了可操作权限中的数据可执行操作。最后,应用数据字典支持用户对所打开窗口的重新排列,也可以对字段和字符进行隐藏,对字体等的颜色进行修改。对系统间数据结构和相关数据的了解,也促使用户在正确访问时,对任何供选列表到窗口的转换缩放,另外信息系统的管理员还具有添加字段和制定验证规则的权限。

三、 系统数据字典的设计

数据字典的设计理念主要是将系统中的用户,表等包含的数据信息组织联系起来并将具有共性属性的部分抽出并归纳,重新组建一个具有共性属性特点的数据集。这个数据集主要包括用户字典,表字典,数据项字典。

首先介绍的是用户数据字典的设计。用户数据字典是用来定义信息系统的用户属性的,对其的设计主要包含用户名,用户权限,使用口令等方面的属性设计。接着我们在谈到表数据字典的设计时,我们可以套用用户数据字典的设计。我们从表数据字典是定义信息应用系统中的务类数据表的属性可以得出,对表数据字典的设计应主要从数据表名和中文名,表类别,索引表达式和索引表名等序列设计几个方面展开。需要指出的是,索引表名是被物理表确定的索引表名的,因而索引表不仅有一个,可以存在多个。最后我们要谈到的是数据项数据字典的设计。信息系统的设计中,好的思路一旦形成便可以套用到多个方面,因此征对各种表的数据项属性进行的数据项数据字典设计便显得直观了。在对数据项数据字典进行设计时应主要从数据表名,数据项名和中文名,有关数据表现(类型,长度,小数点位数),关键字,代码编码规则,表名,缺失项标志等方面进行设计。另外需要补充的是,对数据项数据字典的定义不是固定的,系统开发人员在开发时可根据系统的需要进行周全设计,所以数据字典随着系统开发的深入后即定数据若不能与系统相匹配时,可以再根据需要进行数据信息的完善。

四、 小结

数据库信息系统中数据字典的应用是通过对数据库中的数据进行归纳整理后形成的具有共同属性的数据集合,因此对数据字典的应用可以降低数据库中数据的查找难度,方便用户对数据的使用.因此本文主要说明了数据库信息系统中数据字典的设计,来促使数据字典的普遍利用.对于本文的纲要,我们主要是从数据字典中的数据获取开始展开,接着说明了数据字典使用的优点和方便,接着便引出了数据字典的种类和设计方法.通过本文的叙述讨论和分析,我们发现了数据库中数据整合的原理和方法,把原本复杂的数据整理工作变得具有可操作性和系统性.在对数据字典中原始数据进行属性归类,用户名角色定义这个过程中这个过程中我们发现对数据字典的使用极大程度地减少了数据查找的繁琐和用户使用的不便利.而在对数据字典中的表字典和数据项字典的设计过程中我们发现共性属性这一概念对数据字典集的归纳作用.并且共性属性这个概念对信息系统的其它方面也具有启示性的作用.

参考文献:

[1]杨英,韩明. 数据字典中数据的获取方法[J].电脑开发与应用,2009,(05)

上一篇: 新教师新学期工作计划 下一篇: 篮球协会工作计划
相关精选
相关期刊