导航:首页 > 程序命令 > 关系模型的程序员

关系模型的程序员

发布时间:2022-05-24 08:16:55

A. 做一个程序员要具备什么

1:团队精神和协作能力 ,和基本的操作常识,缺乏这种素质的人就完全不合格了。
2.要有做文档的习惯,缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。
3:规范化,标准化的代码编写习惯 。
4.代码具有良好的可读性,是程序员基本的素质需求。
5.程序员需要理解一个模块的需求,把性能指标全部归结到硬件,操作系统和开发环境上。
6.复用性,模块化思维能力 ,避免大部分重复性工作无谓的浪费了时间和精力。
7. 测试习惯 ,作为一些商业化正规化的开发而言,专职的测试工程师是不可少的
8..程序员是人才很容易被淘汰,很容易落伍的职业,必须不断跟进新的技术,学习新的技能。
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令

计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

[NextPage]

学习编程,从何入手

如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
==============================================
方案一 Basic语言 & Visual Basic

优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。

综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

Basic/Visual Basic简介
==============================================
方案二 Pascal语言 & Delphi

优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。

缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。

综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

Pascal语言简介
Delphi简介
==============================================
方案三 C语言 & Visual C++

优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。

缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。

综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

C语言简介
==============================================
方案四 C++语言 & C++ Builder

优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。

缺点
由于推出的时间太短,关于它的各种资料还不太多。

综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。

C语言简介
==============================================
方案五 SQL语言 & Power Builder

对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

[NextPage]
JSP简介

在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。

JSP与ASP的简单比较

JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。

此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。

运行环境

执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 http://localhost:8080 即可打开缺省页面。

在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是" work "子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用"查看源文件"菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的" examples "页面提供。

Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。

[NextPage]
SQL语言简介

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

Structured Query Language包含4个部分:

数据查询语言DQL-Data Query Language SELECT
数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP
数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

SQL的历史

在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:

● 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”
● 美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前,所有主要的关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准。

SQL的优点

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

(1) 非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

(2) 统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

(3) 是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。

[NextPage]
Java语言简介

一. Java的由来

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

二. Java的定义

Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

三. Java的特点

1. 平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2. 安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。

3. 面向对象

Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通 过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。

4. 分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5. 键壮性

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。

四. Java与C/C++语言

Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。

Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。

Java去掉了以下几个C和C++功能:
指针运算
结构
typedefs
#define
需要释放内存

这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。

面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。

五. Java与Internet

我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。

Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java 是一种面向对象语言。Java 语言类似于 C++ 语言,所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java 程序需要编译。实际上有两种 Java 程序:一种 Java 应用程序是一个完整的程序,如 Web 浏览器。一种 Java 小应用程序是运行于 Web 浏览器中的一个程序.

Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。

当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题,通常大的部门应设置防火墙,阻止非法侵入。

电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能 与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。

Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。

[NextPage]
PowerBuilder简介

PowerBuilder的产生

PowerBuilder是美国着名的数据库应用开发工具生产厂商PowerSoft推出的成功产品,其第一版于1991年6月正式投入市场。它是完全按照客户/服务器体系结构研制设计的,采用面向对象技术,图形化的应用开发环境,是数据库的前端开发工具。

PowerBuilder的特点

它支持应用系统同时访问多种数据库,其中既包括Oracel,Sybase之类的大型数据库,又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具,它提供了大量的控件,大大加快了项目的开发速度,也使开发者更容易掌握数据库的开发。

它使用的编程语言叫做工PowerScripr,它也是一种高级的,结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言,这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发,又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具。

PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序,由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为是一个图形工具。

在客户/服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力。特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什麽地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。

使用PowerBuilder,可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具。

PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件。开发人员可以使用所有标准
如WINDOWS XP \WINDOWS 2000 \WINDOW VIST.等

B. 关于 关系数据模型的一点疑惑:

透明是隐藏的意思,用户只需要指出要做什么就可以了,至于怎么去做的一般用户不需要了解是,不可以操作的。
存取路径是指对数据处理(包括增,删,改,查询)的实现过程

因为隐藏了存取路径,由数据库管理系统自己选择路径,普通用户可能在不知情的情况下用了较低效率的方法实现,数据量越大效率差距越明显。
这就需要优化、、

truncate table tablename
delete * from tablename
同样是删除tablename表的所有记录
truncate table tablename 效率就高的多,当然他们意思也是不同的
具体要多看书多演练,最好能做点小项目会很有帮助

C. 请问数据库里的层次模型、网状模型、关系模型之间的比较

1.层次模型

层次模型是数据库系统中最早使用的模型,它的数据结构类似一颗倒置的树,每个节点表示一个记录类型,记录之间的联系是一对多的联系,基本特征是:

* 一定有一个,并且只有一个位于树根的节点,称为根节点;
* 一个节点下面可以没有节点,即向下没有分支,那么该节点称为叶节点;
* 一个节点可以有一个或多个节点,前者称为父节点,后者称为子节点;
* 同一父节点的子节点称为兄弟节点。
* 除根节点外,其他任何节点有且只有一个父节点;

图11.7是一个层次模型的例子。

层次模型中,每个记录类型可以包含多个字段,不同记录类型之间、同一记录类型的不同字段之间不能同名。如果要存取某一类型的记录,就要从根节点开始,按照树的层次逐层向下查找,查找路径就是存取路径。如图11.8所示。

层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但如果需要动态访问数据(如增加或修改记录类型)时,效率并不高。另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较繁琐和不直观。
2.网状模型

网状模型可以看作是层次模型的一种扩展。它采用网状结构表示实体及其之间的联系。网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。网状模型的特征是:

1. 允许一个以上的节点没有父节点;
2. 一个节点可以有多于一个的父节点;

例如,图11.9(a)和图11.9(b)都是网状模型的例子。图11.9(a)中节点3有两个父节点,即节点1和节点2;图11.9(b)中节点4有三个父节点,即节点1,节点2和节点3。

由于网状模型比较复杂,一般实际的网状数据库管理系统对网状都有一些具体的限制。在使用网状数据库时有时候需要一些转换。例如,如图11.10所示。

网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。
3.关系模型

关系模型是目前应用最多、也最为重要的一种数据模型。关系模型建立在严格的数学概念基础上,采用二维表格结构来表示实体和实体之间的联系。二维表由行和列组成。下面以教师信息表和课程表为例,说明关系模型中的一些常用术语:
表11.1 教师信息表(表名为:tea_info)
TNO(教师编号)

NAME(姓名)

GENDER(性别)

TITLE(职称)

DEPT(系别)

805

李奇



讲师

基础部

856

薛智永



教授

信息学院

表11.2 课程表(表名为:cur_info)
CNO(课程编号)

DESCP(课程名称)

PERIOD(学时)

TNO(主讲老师编号)

005067

微机基础

40

805

005132

数据结构

64

856

1. 关系(或表):一个关系就是一个表,如上面的教师信息表和课程表。
2. 元组:表中的一行为一个元组(不包括表头)。
3. 属性:表中的一列为一个属性。
4. 主码(或关键字):可以唯一确定一个元组和其他元组不同的属性组。
5. 域:属性的取值范围。
6. 分量:元组中的一个属性值。
7. 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,... ...,属性n)。

关系模型中没有层次模型中的链接指针,记录之间的联系是通过不同关系中的同名属性来实现的。 关系模型的基本特征是:

1. 建立在关系数据理论之上,有可靠的数据基础;
2. 可以描述一对一,一对多和多对多的联系。
3. 表示的一致性。实体本身和实体间联系都使用关系描述。
4. 关系的每个分量的不可分性,也就是不允许表中表。

关系模型概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示,用户比较容易理解。另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次和网状模型。为了提高查询的效率,有时需要对查询进行一些特别的优化

D. 数据库系统的关系数据模型问题

已经讲了数据结构的层次模型和网状模型,最后再看下第三种模型,关系模型。

关系模型以二维表结构来表示实体与实体之间的联系,它是以关系数学理论为基础的,每个二维表又可称为关系。

在关系模型中,操作的对象和结果都是二维表,关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据库管理系统。

1、基本术语

(1)关系(Relation):一个关系对应着一个二维表,二维表就是关系名。

(2)元组(Tuple):在二维表中的一行,称为一个元组。

(3)属性(Attribute):在二维表中的列,称为属性。属性的个数称为关系的元或度。列的值称为属性值;

(4)(值)域(Domain):属性值的取值范围为值域。

(5)分量:每一行对应的列的属性值,即元组中的一个属性值。[2]

(6)关系模式:在二维表中的行定义,即对关系的描述称为关系模式。一般表示为(属性1,属性2,......,属性n),如老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。

(7)键(码):如果在一个关系中存在唯一标识一个实体的一个属性或属性集称为实体的键,即使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同。

(8)候选键(候选码):若关系中的某一属性的值能唯一标识一个元组如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。

例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。

2、关系模型的数据操作与完整性约束

关系数据模型的操作主要包括查询、插入、删除和修改数据;这些操作必须满足关系的完整性约束条件。

关系模型中数据操作的特点是集合操作方式,即操作对象和操作结果都是集合,这种操作方式也称为一次一集合的方式。

相应地,非关系数据模型的操作方式是一次一记录的方式。

关系的完整性约束条件包括三大类:

实体完整性、参照完整性和用户定义的完整性。

实体完整性定义数据库中每一个基本关系的主码应满足的条件,能够保证元组的唯一性。参照完整性定义表之间的引用关系,即参照与被参照关系。用户定义完整性是用户针对具体的应用环境制定的数据规则,反映某一具体应用所涉及的数据必须满足的语义要求。

3、关系模型的优缺点

关系数据模型的优点主要体现在以下几点:

(1) 关系模型与非关系模型不同,它是建立在严格的数学理论基础上的。

(2) 关系模型的概念单一,实体与实体间的联系都用关系表示,对数据的检索结果也是关系(即表),所以其数据结构简单、清晰,用户易懂易用。

(3) 关系模型的物理存储和存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化了程序员的数据库开发工作。

关系数据模型的缺点有以下几点:

(1) 由于存取路径对用户透明,查询效率往往不如非关系数据模型高。因此,为了提高性能,必须对用户的查询请求进行优化,这就增加了开发数据库管理系统的难度和负担。

(2) 关系数据模型不能以自然的方式表示实体集间的联系,存在语义信息不足、数据类型过少等弱点。

E. 关系数据模型和非关系数据模型的优缺点

关系型数据库:SQLServer、Oracle、mysql等

特性:

①采用关系模型来组织数据的数据库;

②事务的一致性;

③简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

优点:

容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;

使用方便:通用的SQL语言使得操作关系型数据库非常方便;

易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;

支持SQL,可用于复杂查询。

缺点:

①为了维护一致性所付出的巨大代价就是其读写性能比较差;

②固定的表结构;

③高并发读写需求;

④海量数据的高效率读写;


非关系型数据库:MongoDb、redis、HBase等

特性:

①使用键值对存储数据;

②分布式;

③一般不支持ACID特性;

④非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

优点:

①无需经过sql层的解析,读写性能很高;

②基于键值对,数据没有耦合性,容易扩展;

③存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

缺点:

①不提供sql支持,学习和使用成本较高;

②无事务处理,附加功能bi和报表等支持也不好;

F. 数据库试题

1/A
2/B
3/A
4/A
5/B
6/C
7/数据结构,数据操作,完整性约束条件
8/表
9/DBA
10/数据独立性差
11/SQL
12/内模式
13/存储
14/外模式,模式和内模式
15/应用程序,操作系统,数据库管理系统
16/数据库管理系统
17/增删改查
18/实体,属性和联系
19/A
20/属性
欢迎批评指正。

G. 数据库关系模型有哪些优缺点

关系模型数据库的优点:

1、关系模型和格式化模型不同,它是简历在严格的数学概念的基础上的。

2、关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据库的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。

3、关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

关系模型数据库的缺点:

1、由于存取路径岛屿用户是隐蔽的,查询效率往往不如格式化数据模型。

2、为了提高性能,数据库管理系统必须到用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。

(7)关系模型的程序员扩展阅读

其他数据库的优缺点:

层次数据库的优点:

1、数据结构比较简单清晰。

2、层次数据库的查询效率高。因为层次模型中记录之间的联系用有向边表示,这种练习在DBMS中常常用指针来实现,因此这种练习也就是记录之间的存取路径。当药存取某个节点的记录值,DBMS就沿着这一条路径很快找到该记录值,所以层次数据库的性能优于关系数据库,不低于网状数据库。

3、层次数据模型提供了良好的完整性支持。

层次数据库的缺点:

1、现实世界中很多联系都是非层次性的。

2、对插入和产出操作的限制比较多,因此应用程序的编写比较复杂、

3、由于结构严密,层次命令趋于程序化。

H. 数据库关系模型的主要优点有

两种典型的GIS数据模型
1、拓扑关系数据模型
拓扑关系数据模型以拓扑关系为基础组织和存储各个几何要素,其特点是以点、线、面间的拓扑连接关系为中心,它们的坐标存贮具有依赖关系。该模型的主要优点是数据结构紧凑,拓扑关系明晰,系统中预先存储的拓扑关系可以有效提高系统在拓扑查询和网络分析方面的效率,但也有不足:

对单个地理实体的操作效率不高。由于拓扑数据模型面向的是整个空间区域,强调的是各几何要素之间的连接关系,在另一方面对具有完整、独立意义的地理实体作为个体存在的事实没有足够的重视,因此增加、删除、修改某一地理实体时,将会牵涉到一系列文件和关系数据库表格,这样不仅使程序管理工作变得复杂,而且会降低系统的执行效率。

难以表达复杂的地理实体。由于拓扑关系组织的要求,一个完整的简单实体在拓扑关系模型中有时需要被分解为多个几何要素(比如一条公路本是一个完整的实体,但为了记录其拓扑邻接信息,只有对其在与其它公路实体邻接的地方进行分段,这样一个完整的实体就被分成多个几何要素。所有的实体都进行如此处理,所以我们说拓扑数据模型是面向整个区域、面向不被分割的几何要素的,而不是面向用户眼中的地理实体)。复杂地理实体由多个简单实体组合而成,自然也常常被分解,拓扑数据模型的整体组织特性注定了它不可能有效地表达这一由多个独立实体构成的有机集合体。

难以实现快速查询和复杂的空间分析。由于在拓扑数据模型中,地理实体被分解为点、线、面基本几何要素存储在不同的文件和关系表中,因而凡涉及到独立地理实体的操作、查询和分析都将花费较多的CPU时间,在大区域的复杂空间分析方面表现尤为明显。
局部更新困难,系统难于维护与扩充。由于地理空间的数据组织和存储是以基本几何要素(点、弧段和多边形)为单元进行的,系统中存储的复杂拓扑关系是GIS工作的数据基础,当局部一些实体发生变动时,整层拓扑关系将不得不随之重建,这样的系统牵一发而动全身,在维护和扩充方面需要更多的精力,并且容易出错。

值得说明的是,拓扑关系数据模型也能以面向对象的方式实现,但此时面向的对象是不被其它要素从中间分割的几何要素,往往是一个独立地理实体的一部分,而不是一个完整的、独立的地理实体。这一点是拓扑关系数据模型与下一节面向实体数据模型本质不同的重要表现之一。

2、面向实体的数据模型
里称为“面向实体”,是为了强调这种数据模型是以单个空间地理实体为数据组织和存储的基本单位的。
与上述拓扑模型相反,该模型以独立、完整、具有地理意义的实体为基本单位对地理空间进行表达。在具体组织和存储时,可将实体的坐标数据和属性数据(如建立了部分拓扑,拓扑关系也放在表中保存)分别存放在文件系统和关系数据库中,也可以将二者统一存放在关系数据库中(可以将坐标数据和属性数据放在同一个表中,也可以将二者分成两个表,ESRI公司SDE的存贮模式是分成四个表格,它还增加了一个Layers表和一个空间索引表。Layers表位于服务器端,用于层的管理和维护;空间索引表(服务器端)采用网格索引,用于实体的快速搜索)。
面向实体的数据模型在具体实现时采用的是完全面向对象的软件开发方法,每个对象(独立的地理实体)不仅具有自己独立的属性(含坐标数据),而且具有自己的行为(操作),能够自己完成一些操作。虽然面向实体的数据模型在内部组织上可以按照拓扑关系进行,但是作者这里所说的模型强调对象的坐标存贮之间(尤其是面与线的坐标存贮)不具有依赖关系,这是它与拓扑关系模型的本质不同点。该模型能够很好地克服拓扑关系数据模型的几个缺点,具有实体管理、修改方便,查询检索、空间分析容易的优点,更重要的是它能够方便地构造用户需要的任何复杂地理实体,而且这种模式符合人们看待客观世界的思维习惯,便于用户理解和接受。同时,面向实体的数据模型自然地具有系统维护和扩充方便的优点。

这种模型是当今流行GIS软件采用的最新数据模型,但也有一些缺点:

拓扑关系需临时构建。由于面向实体的数据模型是以地理实体为中心的,并未以拓扑关系为基础组织、存储地理实体,表达地理空间,因此拓扑关系并不是一开始就存在,而是在需要时才临时导出各种拓扑关系,这需要消耗一定的系统资源。也许有观点认为,以实体为单位组织数据时,也可以将拓扑关系一开始就保存在实体的属性表中,拓扑关系并不一定是临时构建出来的。但仔细分析便可发现,这种方案对由多个几何要素组成的实体(如一条组成要素不同的河流)不可行,因为拓扑关系不能有效准确地记录。实际上这种方案只对由一个几何要素组成的实体适用,但其本质上仍是拓扑关系数据模型,其缺点表征与上面2.1节描述的完全相同,因而不是真正的面向实体数据模型。

动态分段、网络分析效率降低。在结点---弧段---多边形拓扑关系链中,显式的拓扑表有四个:结点---弧段表,弧段---结点表,弧段---多边形表和多边形---弧段表。有了这四个关系表,我们就能直接查找任意结点、弧段和多边形的拓扑属性,便于进行动态分段和网络分析等其它与拓扑关系有关的拓扑分析,基于拓扑数据模型的GIS可以很方便地做到这一点。但由于将四个拓扑表全部存贮会使系统的空间开销成倍增大,因此一些软件只存贮其中2个(如早期的System 9版本)或将弧段—结点、弧段—多边形表合二为一(Arc/Info 8.0以前版本),被隐含的表可由显示存在的表导出。即便这样,基于拓扑数据模型的GIS在涉及拓扑关系的查询和分析上仍然有较高的效率,而面向实体的数据模型由于要根据需要临时构建拓扑关系,自然会使拓扑查询和分析的效率降低。当然构建好的拓扑关系可存放起来,供以后使用。

实体间的公共点和公共边重复存贮。由于面向实体的数据模型是以地理实体为基本单位进行数据组织和空间表达的,对每一个地理实体都进行完整存贮(存贮到点一级),在存贮坐标时是各对象独立存贮,不再依赖其它对象,那么就必然会导致实体间共有的公共点和公共边重复存贮。

难以将管理、分析和处理定位到几何要素一级。几何要素是指点、弧段和多边形等简单图形,有时构成同一实体的各个几何要素之属性差别较大(例如组成一块宗地的各边之面积不一样,某一交通闭合环路的组成道路类型不一样等),需要在地理实体的下一级---几何要素一级上进行处理,拓扑数据模型可以直接进行处理,而面向实体的数据模型则需要首先对相关地理实体进行定位、分解,因而降低系统在这方面的性能。从本质上分析,我们不难得到,由于该种模型认为组成同一实体的几何要素之属性相同,因而忽略了几何要素间的属性差异,从而导致在系统存贮和处理机制上难以定位到几何要素一级。

难以实现跨图层的拓扑查询和分析。如果这个问题放在拓扑关系模型中,则比较容易解决,因为各个要素的邻接要素已事先存在,不仅已经是分层的,而且具有实际的地理属性,因此只要顺藤摸瓜查找邻接要素并取得其地理属性即可。但对于面向实体的数据模型,则不能有效地解决,因为临时生成拓扑关系时其中的几何要素一般属于同一层,不可能自动生成跨图层的地理属性,必须做进一步的处理方才有可能解决。显然,这种方法的效率不高。

I. 层次模型、网络模型和关系模型的区别是什么

区别一:组成不同

1、层次模型将数据组织成一对多关系的结构,层次结构采用关键字来访问其中每一层次的每一部分。

2、网状模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式。

3、关系模型以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。

区别二:模型优点不同

1、层次模型优点:数据结构比较简单清晰,数据库的查询效率高,提供了良好的完整性支持。

2、网状模型优点:能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点直接可以有多种联系;具有良好的性能,存取效率较高。

3、关系模型优点:建立在严格的数学概念的基础上;概念单一,无论实体还是实体之间的联系都是用关系来表示。对数据的检索和更新结构也是关系;它的存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,简化了程序员的工作个数据库开发建立的工作。

区别三:模型缺点不同

1、层次模型缺点:现实世界中很多联系是非层次性的,它不适用于结点之间具有多对多联系;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。

2、网状模型缺点:结构比较复杂,随应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(C、COBOL)中,用户不容易掌握和使用。

3、关系模型缺点:存取路径的隐蔽导致查询效率不如格式化数据模型。

阅读全文

与关系模型的程序员相关的资料

热点内容
什么app订酒店半价 浏览:765
中老年解压神器 浏览:241
讯飞语音ttsandroid 浏览:466
腰椎压缩性骨折术后能坐车吗 浏览:505
python类装饰器参数 浏览:345
均线pdf微盘 浏览:789
女生喜欢玩的解压游戏 浏览:440
支付宝暗号加密操作 浏览:133
柯洁在哪个app下围棋 浏览:751
平板用什么app看内在美 浏览:609
cad计算机命令 浏览:173
邮箱设置域名服务器错误什么意思 浏览:671
硬盘解压失败受损蓝屏 浏览:654
应用和服务器是什么意思 浏览:485
程序员需要知道的网站 浏览:713
微信支付页面加密码怎么加 浏览:57
网络加密狗问题 浏览:698
cnc曲面编程实例 浏览:170
什么app零粉分发视频有收益 浏览:164
肯尼亚程序员 浏览:640