以下是网学网为您推荐的JSP,NET,JAVA类别-数据存储设计与实现,希望本篇文章对您学习有所帮助。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | |||
计算机毕业设计 现在数据库教学的不足突出地表现在以下几点: 1.普遍只强调理论,不重视实践,在学习过程中难以对概念深刻领悟,课程结束后就很快把其中许多内容给淡忘掉了。 2.现有对数据库的实践也是流于形式,内容肤浅与真实的数据库管理系统相去甚远。比如用SQL语言对数据库进行一定的创建查询操作。这些实践都不过是对数据库管理系统的使用,根本谈不上了解数据库本身的运行机理。而且这些实践都太过理想化,完全把底层原理透明化了,这些实践充其量只不过是对SQL语言熟悉而已。 3.用真实的数据库管理系统来实践显然要好得多。但现实中的数据库管理系统都太过庞大,比如开源的数据库管理系统MYSQL,仅源代码就达数十万行之多。专业人员阅读起来都不会很容易,更不要说刚读本科的学生对其进行修改了,所以收效甚微。 以上三点明显地说明了:“实践”在数据库原理教学中的重要性。需要一个能够真正对数据库所学理论进行有效的实践的数据库管理系统。但缺少一个好的教学用数据库管理系统,现有的教学用数据库管理系统并不那么适合中国的实际情况。 因此,无论是从应用的角度还是学习数据库的理论教学的角度来看,设计与实现一个小型的数据库管理系统都是很有必要的。 1.1 研制DBMS的重要性 数据库技术产生于1970年前后。它的出现使得计算机的应用进入了新的时期,社会的每个领域都与计算机发生了联系。数据库技术聚集了数据处理最精华的思想,是管理信息最先进的工具。信息社会的紧迫需求使数据库技术成为计算机园地中一支最有生命力的新秀。而与人工智能的结合又使它获得了新的血液。20世纪80年代中期数据库技术进入一个新的层次,智能数据库、演绎数据库、专家数据库、面向对象数据库、工程数据库、多介质数据库、并行数据库、实时数据库等就是当代数据库研究的前沿。 数据库管理系统(DBMS)的研制是一件非常复杂的软件工程。它涉及的面非常广泛,需要软件、硬件及设备方面的知识;需要一定的物质条件;需要研制人员的丰富的编程经验和精深的软件技术;需要科学的管理方法和科学先进的测试技术。当然由于系统的功能和规模不一样,其复杂程度也相差很大。大一点的数据库如IMS花费几千人年,系统R的研制花费了120个专家人年以及几千程序员人年,SYSTEM2000花费400人年。数据库的设计与数据库的设计不同,前者属于系统软件设计,与机器世界比较接近,它的基础是OS;后者属于应用软件设计,与现实世界更为接近,它的基础是数据库。所以数据库是介于用户程序和OS之间的一个中间媒介,是使得物理数据库与用户程序相互独立的软件系统。 研制数据库对于从事数据库开发的科研人员和教学人员是一件十分有价值的工作。通过参加研制数据库的工作,可以加深对数据库技术的理解,弄清其来龙去脉,提高技术水平,从而改进数据库教学质量。更重要的是满足社会需求。同时数据库的研制是一件很基础的工作,是研究面向对象数据库、分布式数据库、知识库以及智能数据库的基础。因此,数据库原理一般都作为计算机专业的基础课程学习。 1.2 MyDB的设计目标 先看看国际上有关数据库发展的情况。随着计算机广泛而深入地应用与社会各行各业,作为其中重要支柱的系统软件——数据库变的越来越庞大,功能越来越强,而且这种发展势头丝毫不见有放慢的迹象。特别是随着网络通信技术的发展,现代主流的数据库厂商纷纷把网络特性集成系统之中,甚至还出现了专门应用于网络环境的分布式数据库管理系统。所有这些数据库的复杂性给数据库的设计带来很大的挑战。 如果个人想设计并实现一个商用的数据库基本上是不可能的,复杂的技术细节会把数据库的最基本的理论完全掩盖。因此,学生很难通过商用的数据库学习数据库的原理。MyDB是一个面向教学用的DBMS,这是必须首先坚持的,同时亦对DBMS的存储管理、SQL语言感兴趣。 总之,MyDB是一个基于关系代数的、用C实现的、面向教学的关系型数据库管理系统。 2 数据库理论2.1 数据元素的表示 首先,研究一下最基本的数据元素的表示,即关系数据库系统中的属性值的表示。这是用“字段”来表示的。然后,考察字段如何组装成存储系统中更大的元素:记录、块和文件 2.1.1 字段 属性需要用定长或变长的字节序列表示,称作“字段”; 可以用下式所示的CREATE TABLE 语句在SQL系统中声明一个关系。数据库负责表示和存储由这个定义描述的关系。既然关系是元组的集合,元组与记录或“结构”(C或C++术语)相似,可以设想每一个元组在磁盘中作为一条记录来存储。记录会占据某个磁盘块(或一部分),在记录内部,对应于关系的每一个属性有一个字段。 CREATE TABLE StudentInfor ( number int , name CHAR(6) , age int , address CHAR(20) , …… ) 2.1.2 记录 字段被组装成定长或变长的集合,成为“记录”; l 定长记录的构造 元组由记录表示,而记录由上述所讨论的各种字段组成。最简单的情况是记录的所有字段均为定长,则可以将字段连接成记录。 l 记录首部 当设计记录的格式的时候,必然会引出另一个问题:通常在记录中需要保存一些信息,而这些信息不是任何字段的值。因此有必要在记录的首部添加相关信息,如:记录长度、字段数等。 2.1.3 块 构成一个关系或类的外延的记录集存储为块的集合,成为文件。 2.2 查询编译器 查询处理器需采取三个主要步骤: 1)对使用诸如SQL的某种语言书写的查询进行语法分析,亦即将查询语句转换成按某种有用方式表示查询语句结构的语法树; 2)把语法分析树转换成代数关系表达式树(或某种类似标记),称之为逻辑查询计划; 3)逻辑查询计划需转换成物理查询计划,物理查询计划不仅指名了要执行的操作,而且也找出了这些操作执行的顺序、执行每步所用的算法、获得所存储数据的方式以及数据从一个操作传递给另一个操作的方式。 查询编译的开始几个阶段如图所示:
1. 语法分析与语法分析树 语法分析器的工作是接收用类似SQL这样的语言编写的文本并将之转换成语法分析树,结点对应于以下两者之一: 1)原子:它们是词法成分,如关键字(如SELECT等)、关系或属性的名字、常数、括号、操作符(如+等),以及其它成分; 2)语法类:即在一个查询中起相似作用的查询子成分所形成族的名字。可以用尖括号将描述性的名称括起来表示语法类。例如,<SFW>用于表示以常用的select-from-where形式的查询,而<Condition>将用于表示属性条件的任何表达式,如跟在SQL语句where之后的表达式。 如果结点是一个原子,则该结点没有子女。然而,若该结点是一个语法类,则其子女通过该语言的语法规则之一进行描述。 1. SQL的一个简单子集的语法 通过给出可用于SQL子集的语言的某些规则,我们借此说明语法分析树的过程。 | |||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | |||
本文选自计算机毕业设计http://myeducs.cn |