资源描述
数据构造与算法
一、基本概念:
v 数据(Data):信息载体,可以被计算机辨认、存储和加工解决物理符号。波及文本类型数据(如:字母、数字、中文)和多媒体类型数据(如:声音、动画、图像)。
v 数据元素(Data Element):是数据基本单位,有时也称为元素、结点、顶点、记录,可以有若干个数据项(字段、域、属性)构成。
v 数据构造(Data Structure):指是数据之间互有关系,即数据组织形式。其波及三个某些:
1、逻辑构造:数据元素之间逻辑关系
2、存储构造:数据元素及其关系在计算机存储器内体现。
3、数据运算(算法):即对数据施加操作
v 数据逻辑构造有两大类:
1、线性构造:
特性是:若构造是非空集,则有且仅有一种开始结点和一种终端结点,并且所有结点最多只有一种直接前趋和一种直接后继。
例:一维数组、链表、栈、队列、串
2、非线性构造:
特性是:一种结点也许有多种直接前趋和直接后继。
例:多维数组、广义表、树、图
v 数据存储构造有如下基本存储措施:
1、顺序存储措施:
该措施是将逻辑上相邻结点存储在物理位置上相邻存储单元里,结点间逻辑关系由存储单元邻接关系来体现,一般通过数组来实现。
2、链接存储措施:
该措施不规定逻辑上相邻结点在物理位置上亦相邻,结点间逻辑关系是由附加指针字段体现。通过指针类型来实现。
3、索引存储措施:
该措施一般是在存储结点信息同步,还建立附加索引表,索引表中每一项称为索引项,索引项一般形式是:核心字,地址。
4、散列存储措施:
该措施基本思想是根据结点核心字直接计算出该结点存储地址,通过散列函数实现。例:除余法散列函数、相乘取整法散列函数
v 算法基本特性:
1、可行性(Effectiveness):针对实际问题而设计算法,执行后可以得到满意成果。
2、拟定性(Definiteness):算法中每一种环节都必要有明拟定义,不容许浮现歧义性。
3、有穷性(Finiteness):算法必要在有限时间内做完,即必要在执行有限个环节之后终结。
v 时间复杂度:该算法执行时间耗费,它是该算法所求解问题规模n函数。
v 空间复杂度:该算法执行时所耗费存储空间,它也是问题规模n函数。
二、线性表:
v 线性表(Linear List):是由n(n>=0)个数据元素(结点)a1,a2,a3,······,an构成有限序列。对于非空线性表,有且仅有一种开始结点a1,它没有直接前趋;有且仅有一种终端结点an,它没有直接后继;别旳结点有且仅有一种直接前趋结点和一种直接后继结点。
v 线性表存储构造:
1、顺序存储(Sequential List):将线性表结点按逻辑顺序依次存储在一组地址持续存储单元里,用这种措施存储线性表称为顺序表。
2、链式存储(Linked List):逻辑上相邻结点,物理上也相邻,存储单元可以是持续,也可以是不持续,在存储每个结点值同步,还存储指向其后继结点地址,用这种措施存储线性表称为链表。
v 常用运算有:
表初始化、求表长度、取表中第i个结点、查找结点、插入新结点、删除结点。
v 顺序表和链表比较:
1、基于空间考虑:
A、顺序表存储空间是静态分派,而链表存储空间是动态分派。
B、顺序表占存储空间必要是持续,而链表占存储空间可以是持续,也可是不持续
C、顺序表存储密度为1,而链表中每个结点,除了数据域外,还要额外设立指针域,存储密度不不小于1
2、基于时间考虑:
A、在链表中任何位置上进行插入和删除,只需要修改指针,而顺序表中平均将要移动近一半结点。
B、顺序表是随机存取构造,它存取时间为O(1),而链表需从头结点顺着链扫描链表。
总之,当线性表长度变化不大,易于事先拟定其大小时,为了节省存储空间,宜采用顺序表作为存储构造;当线性表长度变化较大,难以估计其存储规模时,以采用链表作为存储构造为好。若线性表操作重要是进行查找,很少做插入和删除操作时,采用顺序表做存储构造为宜;对于频繁进行插入和删除线性表,宜采用链表做存储构造。
例:有关线性表描述中,错误是( )
A、线性表是线性构造 B、线性表顺序存储构造,必要占用一片持续存储单元
C、线性表是单链表 D、线性表链式存储构造,不必占用一片持续存储单元
用数组体现线性表长处是( )
A、便于插入和删除操作 B、便于随机存取
C、可以动态地分派存储空间 D、不需要占用一片持续存储空间
三、栈:
v 栈(Stack):是限制仅在表一端进行插入和删除运算线性表,一般称插入、删除这一端为栈顶(Top),另一端称为栈底(Bottom)。当表中没有元素时称为空栈。是一种后进先出线性表,又称为LIFO表。
v 栈基本运算有:
栈初始化、判栈空、判栈满、进栈、出栈等
v 栈存储:
顺序存储、链式存储
例:若进栈输入序列是A、B、C、D、E,并且在它们进栈过程中可以进行出栈操作,则不也许浮现出栈序列是( )
A、EDCBA B、DECBA C、DCEAB D、ABCDE
四、队列:
v 队列(Queue):也是一种运算受限线性表,它只容许在表一端进行插入,而在另一端进行删除。容许删除一段称为队头(Front),容许插入一段称为队尾(Rear)。(类似于生活中购物排队)。是一种先进先出线性表,又称为FIFO表。
v 队列基本运算:
队列初始化、判队空、判队满、入队、出队
v 队列存储实现:
顺序存储、链式存储
例:一种队列入队序列是1,2,3,4,则队列输出序列是 ( )
A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1
五、串:
v 串(String):是零个或多种字符构成有限序列。
串中所涉及字符个数称为该串长度。
串中任意个持续字符构成子序列称为该串子串,涉及子串串相应地称为主串
注:空串是任意串子串,任意串是其自身子串
v 串有串常量、串变量之分:
1、串常量在程序中只能被引用但不能变化其值,即只能读不能写。
2、串变量其值是可以变化。
v 串基本运算:
求串长、串复制、串联接、串比较、字符定位、
六、树(非线性构造):
v 树(Tree):是n(n>=0)个结点有限集T,T(n=0)为空时称为空树,否则它满足如下两个条件:
1、有且仅有一种特定称为根(Root)结点
2、别旳结点可分为m(m>=0)个互不相交子集T1,T2,…….,Tm,其中每个子集自身又是一棵树,并称其为根子树(Subtree)。
v 在树树形图体现中,结点一般是用圆圈体现,结点名字一般是写在圆圈旁边,有时亦可写在圆圈内。
v 度(Degree):一种结点拥有子树数称为该结点度。一棵树度是指该树中结点最大度数。
v 叶子(Leaf):度为零结点称为叶子或终端结点
v 分支结点(Node):度不为零结点称为分支结点。
v 树中某个结点子树之根称为该结点孩子(Child)结点或子结点,相应当结点称为孩子结点双亲(Parents)结点或父结点。
v 同一种双亲孩子称为兄弟结点(Sibling)
v 结点层数(Level)是从根起算,设根层数为1,别旳结点层数等于其双亲结点层数加1.
v 树中结点最大层数称为树高度(Height)或深度(Depth).
v 森林(Forest):是m(m>=0)棵互不相交树集合。删去一棵树根,就得到一种森林,反之,加上一种结点作树根,森林就变为一棵树。
v 二叉树(Binary Tree):是n(n>=0)个结点有限集,它或者是空集(n=0),或者由一种根结点及两棵互不相交、分别称作这个根左子树和右子树二叉树构成。
二叉树中,每个结点最多只能有两棵子树,并且有左右之分。
v 二叉树五种基本形态:
例:具有3个结点二叉树有几种形态。
v 满二叉树(Full Binary Tree):一棵深度为k且有2k-1个结点二叉树称为满二叉树
v 完全二叉树(Complete Binary Tree):若一棵二叉树至多只有最下面两层上结点度数可以不不小于2,并且最下一层上结点都集中在该层最左边若干位置上,则此二叉树称为完全二叉树。
二叉树性质:
性质1:二叉树第i层上结点数目最多为2i-1(i>=1)
性质2:深度为k二叉树至多有2k-1个结点(k>=1)
性质3:在任意一棵二叉树中,若终端结点个数为n0,度为2结点数为n2,则n0=n2+1
性质4:具有n个结点完全二叉树深度为[lgn]+1(取下整) 或 [lg(n+1)](取上整)。
例:一棵二叉树结点数为18个,求它最小高度
已知度为2结点数为15个,求叶子结点数
二叉树遍历:
v 遍历(Traversal):是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。
前序遍历:(又称为先序遍历、先根遍历)
若二叉树为空,则执行空操作。否则:
1、访问根结点;
2、前序遍历左子树;
3、前序遍历右子树。
中序遍历:(又称为中根遍历)
若二叉树为空,则执行空操作。否则:
1、中序遍历左子树;
2、访问根结点;
3、中序遍历右子树。
后序遍历:(又称为后根遍历)
若二叉树为空,则执行空操作。否则:
1、后序遍历左子树;
2、后序遍历右子树;
3、访问根结点。
例:已知一棵二叉树中序遍历序列是:FDGBACHE,其后序遍历序列是:FGDBHECA
求其前序遍历序列。
一棵二叉树前序遍历序列为ABDGCFK,中序遍历序列为DGBAFCK,则结点后序遍历序列是( )
A、ACFKDBG B、GDBFKCA C、KCFAGDB D、ABCDFKG
七、排序(Sort):
v 所谓排序,就是指整顿文献中记录,使之按核心字递增(或递减)顺序排列起来。
v 冒泡排序(Bubble Sorting):
通过看待排序序列从后向前或从前向后(从下标较大元素开始),依次比较相邻元素排序码,若发现逆序则互换,使排序码较大元素逐渐从前部移向后部或较小元素逐渐从后部移向前部(从下标较大单元移向下标较小单元)。
v 直接选用排序(Selection Sorting):
扫描整个线性表,从中选出最小元素,将它互换到表最前面;然后对剩余子表采用同样措施,直到子表空为止。
v 直接插入排序(Insertion Sorting):
每次将一种待排序记录,按其核心字大小插入到前面已经排好序子文献中恰当位置,直到所有记录插入完毕为止。
v 迅速排序(Quick Sorting):任取待排序序列中某个元素作为基准(一般取第一种元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素排序码均不不小于或等于基准元素排序码,右子序列排序码则不不不小于基准元素排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。
多种内部排序措施比较
排序措施
时间复杂度
空间复杂度
最佳时间
平均时间
最坏时间
直接插入
O(n)
O(n2)
O(n2)
O(1)
直接选用
O(n2)
O(n2)
O(n2)
O(1)
冒 泡
O(n)
O(n2)
O(n2)
O(1)
快 速
O(nlgn)
O(nlgn)
O(n2)
O(lgn)
堆
O(nlgn)
O(nlgn)
O(nlgn)
O(1)
例:对一种具有n个元素序列进行冒泡排序,在最坏状况下,要进行互换次数是( )
A、n(n+1)/2 B、n(n-1)/2 C、n*n/2 D、n(n+1)/2-1
对n个元素进行冒泡排序过程中,最佳状况下时间复杂性为( )
A、O(1) B、O(log2n) C、O(n2) D、O(n)
对n个元素进行迅速排序过程中,平均状况下时间复杂性为( )
A、O(1) B、O(lgn) C、O(n2) D、O(nlgn)
八、查找(Searching):
v 所谓查找是指给定一种值K,在具有n个结点表中找出核心字等于给定值K结点。若找到,则查找成功,返回该结点信息或该结点在表中位置;否则查找失败,返回有关提示信息。
v 顺序查找(Sequential Search)基本思想是:从表一端开始,顺序扫描线性表,依次将扫描到结点核心字和给定值K相比较,若目前扫描到结点核心字与K相等,则查找成功;若扫描结束后,仍未找到核心字等于K结点,则查找失败。顺序查找即合用顺序存储构造,又合用链式存储构造。
查找成功平均查找长度为:(n为结点数目)
(1+2+3+4+···+n) / n = (n+1)/2
v 二分查找(Binary Search)又称折半查找,它是一种效率较高查找措施,二分查找规定线性表是有序表,即表中结点按核心字有序,并且要用向量作为表存储构造。此外,二分查找只合用顺序存储构造,在链式存储构造上无法实现二分查找。
查找成功时平均查找长度:(n为结点数目)
当n很大时,可用近似公式: lg(n+1)-1 体现
软件工程基本
一、基本概念:
v 软件(Software):软件是一种产品(逻辑产品),指是计算机中程序及其阐明程序多种文档。“程序”是计算任务解决对象和解决规则描述;“文档”是有关计算机程序功能、设计、编制、使用文字或图形资料。
v 软件危机体现:
1、软件需求增长得不到满足
2、软件开发成本和进度无法控制
3、软件质量难以保证
4、软件不可维护或维护限度非常低
5、软件成本不断提高
6、软件开发生产效率提高赶不上硬件发展和应用需求增长
v 软件工程(Software Engineering):用工程化措施、科学知识和技术原理来定义、开发、维护软件一门学科。
v 软件工程目旳:
付出较低开发成本;达到规定软件功能;获得较好软件性能;开发软件易于移植;需要较低维护费用;能准时完毕开发任务,及时交付使用;开发软件可靠性高。
v 软件工程研究重要内容是软件开发技术和软件开发管理两个方面。
v 软件生存周期:是指一种软件从提出开发规定开始直到该软件报废(停止运营)为止整个时期。
v 软件生存周期模型:是描述软件开发过程中多种活动如何执行模型。
v 常用模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识模型
瀑布模型是将软件生存周期各个活动规定为依线性顺序连接若干阶段模型。重要波及问题定义及可行性分析、项目开发筹划、需求分析、概要设计、具体设计、编码、测试和维护几种阶段。
例:下列描述中对旳是( )
A、程序就是软件 B、软件开发不受计算机系统限制
C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与有关文档集合
二、软件可行性研究与项目开发筹划:
v 软件可行性研究目是用最小代价在尽量短时间内拟定该软件项目与否可以开发,与否值得去开发。
v 可行性研究任务:
A、技术可行性
B、经济可行性
C、社会可行性(法律可行性)
v 可行性研究具体环节:
1、拟定项目规模和目旳
2、研究正在运营系统
3、建立新系统高层逻辑模型
4、导出和评价多种方案
5、推荐可行方案
6、编写可行性研究报告
三、软件需求分析:
v 需求分析是指开发人员要精确理解顾客规定,进行细致调查分析,将顾客非形式需求陈述转化为完整需求定义,再由需求定义转换到相应形式功能规约(需求规格阐明)过程。
v 需求分析基本任务:
1、问题辨认
A、功能需求
B、性能需求
C、环境需求
D、顾客界面需求
2、分析与综合,导出软件逻辑模型
3、编写文档(需求规格阐明书)
v 需求分析措施:
1、构造化分析(Structured Analysis):是面向数据流进行需求分析措施。
SA措施运用图形等半形式化描述方式体现需求,重要描述工具:
A、数据流图(DFD):是SA措施中用于体现系统逻辑模型一种工具,以图形方式描绘数据在系统中流动和解决过程。
B、数据字典(DD):用以定义数据流图中各个成分具体含义,为系统分析、设计及维护提供了有关元素一致定义和具体描述。
C、描述加工逻辑构造化语言、鉴定表、鉴定树
2、IDEF措施(是 ICAM Definition缩写):
是一种用于进行复杂系统分析和设计措施,是在构造化分析和设计技术基本上提出来。
3、面向对象分析措施(OOP):
将客观世界事物抽象为对象,通过属性和措施描述对象状态和行为,具有继承、封装和多态性等特性。
例:软件开发构造化分析措施中,常用描述软件功能需求工具是( )
A、业务流程图、解决阐明 B、软件流程图、模块阐明
C、数据流程图、数据字典 D、系统流程图、程序编码
四、软件概要设计:
将软件需求转换为软件体现过程。
v 软件概要设计基本任务:
1、设计软件系统构造
2、数据构造及数据库设计(概要设计、逻辑设计、物理设计):
3、编写概要设计文档:
4、评审:
v 软件设计措施:
模块化:模块在程序中是数据阐明、可执行语句等程序对象集合,或者是单独命名和编址元素,如高档语言中过程、函数、子程序等。
v 模块独立性指每个模块只完毕系统规定独立子功能,并且与其她模块联系至少且接口简朴。其度量原则是:耦合性和内聚性
v 耦合性也称块间联系,指软件系统构造中各模块间互相联系紧密限度一种度量。模块之间联系越紧密,其耦合性就越强,模块独立性则越差。
v 内聚性也称块内联系,指模块功能强度度量,即一种模块内部各个元素(语句之间、程序段之间)彼此结合紧密限度度量。
v 将软件系统划分模块时,尽量做到高内聚低耦合。
例:为了使模块尽量独立,规定( )
A、模块内聚程序要尽量高,且各模块间耦合程序要尽量强
B、模块内聚程序要尽量高,且各模块间耦合程序要尽量弱
C、模块内聚程序要尽量低,且各模块间耦合程序要尽量弱
D、模块内聚程序要尽量低,且各模块间耦合程序要尽量强
五、软件具体设计:
重要拟定每个模块具体执行过程
v 软件具体设计基本任务:
1、为每个模块进行具体算法设计:
2、为模块内数据构造进行设计:
3、对数据库进行物理设计:
4、输入、输出格式设计
5、编写具体设计阐明书:
6、评审:
v 具体设计常用三种工具:
图形(流程图、盒图、问题分析图PAD)、
表格(鉴定表)、
语言(过程设计语言,又称为伪码)
六、软件编码:
重要是将具体设计得到解决过程描述转换为基于某种计算机语言程序
常用计算机语言:
Pascal 、C、C++、Java等
七、软件测试:
软件测试代表了需求分析、设计、编码最后复审。软件测试贯穿于软件开发全过程。
v 软件测试目:
1、软件测试是为了尽量多地发现程序中错误而执行程序过程。
2、一种好测试用例可以发现至今尚未发现错误。
3、一种成功测试是发现了至今尚未发现错误测试。
v 软件测试原则:
1、测试用例应由输入数据和预期输出数据两某些构成。
2、测试用例不仅选用合理输入数据,还要选用不合理输入数据
3、除了检查程序与否做了它应当做事
4、应制定测试筹划并严格执行,排除随意性
5、长期保存测试用例
6、对发现错误较多程序段,应进行更进一步测试
7、程序员避免测试自己程序
v 软件测试措施:
1、静态测试:
是指被测试程序不在机器上运营,而是采用人工检测和计算机辅助静态分析手段对程序进行检测。
2、动态测试:是指通过运营程序发现错误
A、黑盒测试法(功能测试):
重要对软件接口进行测试,根据需求规格阐明书,检查程序与否满足功能规定。常用技术是等价类划分法、边界值分析法、错误推测法、因果图法、综合方略法
B、白盒测试法(构造测试):
重要测试程序内部构造和解决过程。常用技术是语句覆盖、条件覆盖、途径覆盖、鉴定覆盖等
v 软件测试实行:
1、单元测试:
单元测试是对软件设计最小单位——模块(程序单元)进行对旳性检查测试,重要针对模块如下五个基本特性进行测试:
A、模块接口
B、局部数据构造:
C、重要执行途径:
D、错误解决测试:
E、边界条件:
2、集成测试:
集成测试是指在单元测试基本上,将所有模块按照设计规定组装成一种完整系统进行测试,故也称组装测试或联合测试。
重要措施有两种:
非渐增式测试:一方面对每个模块分别进行单元测试,然后再把所有模块按设计规定组装在一起进行测试。
渐增式测试:逐个把未通过测试模块组装到已通过测试模块上去,进行集成测试,每加入一种新模块进行一次集成测试,反复此过程直至程序组装完毕。
3、确认测试:
确认测试又称有效性测试,它任务是检查软件功能与性能与否与需求规格阐明书中拟定指标相符合,因而需求规格阐明是确认测试基本。
4、系统测试:
系统测试是通过测试确认软件作为整个计算机系统一种元素,与计算机硬件、外设、支撑软件、数据和人员等其她系统元素组合在一起,在实际运营环境下对计算机系统进行一系列集成测试和确认测试。
v 程序调试:
调试是在进行了成功测试之后才开始工作,目是拟定错误因素和位置,并改正错误,又称为纠错。
例:软件测试目是( )
A、证明软件对旳性 B、找出软件系统中存在所有错误
C、尽量多地发现软件系统中错误 D、证明软件系统中存在错误
在软件测试措施中,黑箱测试法和白箱测试法是常用措施,其中黑箱测试法重要是
用于测试( )
A、构造合理性 B、软件外部功能 C、程序对旳性 D、程序内部逻辑
八、软件维护:
软件投入使用后进行阶段,是软件生存周期中时间最长一种阶段,所耗费精力和费用也是最多一种阶段。重要是由于:隐含错误要修改;新增功能要加入进去;环境变化对程序进行变动等。
v 软件维护内容有四类:
1、校正性维护:
为了辨认和纠正错误,修改软件性能上缺陷,其占整个维护工作 21%
2、适应性维护:
为了使应用软件适应环境(硬件、系统软件、数据)变化而修改软件过程称为适应性维护,其占整个维护工作25%
3、完善性维护:
增长软件功能、增强软件性能、提高软件运营效率而进行维护活动称为完善性维护,其占整个维护工作 50%
4、避免性维护:
为了提高软件可维护性和可靠性而对软件进行修改称为避免性维护,其占整个维护工作 4%
例:软件维护是指( )
A、维护软件正常运营 B、软件配备更新
C、对软件改善、适应和完善 D、软件开发期一种阶段
软件生命周期中所耗费用最多阶段是( )
A、具体设计 B、软件编码 C、软件测试 D、软件维护
数据库原理基本
一、基本概念:
v 数据解决:是指将数据转换成信息过程
v 数据管理是指对数据组织、分类、编码、存储、检索和维护提供操作手段
其经历了如下阶段:
1、人工管理
2、文献系统
3、数据库系统
4、分布式数据库系统阶段
5、面向对象数据库系统阶段
v 数据库(Database):是指存储在计算机存储设备上构造化有关数据集合,不仅波及数据自身,还波及事物之间联系。
v
v
v
v
v
v
v
v
v
v 数据库应用系统(DBAS):是指系统开发人员运用数据库系统资源开发出来,面向某一类实际应用应用软件系统。
v
v 数据库管理系统(DBMS):
v
v
v
v
v
v
对数据库建立、使用和维护进行管理和配备软件系统。
是数据库系统核心
v 数据库系统(DBS):由硬件系统、数据库集合、数据库管理系统及有关软件、数据库管理员和顾客构成。
v 数据库系统特点:
实现数据共享、减少数据冗余
采用特定数据模型
具有较高数据独立性
统一数据控制功能
v 实体: 客观存在并且可以互相区别事物称为实体。
v 实体属性:实体所具有物性称为实体属性。
v 实体集:同类型实体集合称为实体集。
v 实体型:属性集合体现一种实体类型,称为实体型。
例:数据库管理系统能实现对数据库中数据查询、插入、修改和删除,此类功能称为( )
A、数据定义功能 B、数据管理功能 C、数据操纵功能 D、数据控制功能
v 联系:实体之间相应关系。
联系类型:
1、一对一联系:体现为主表中每一条记录只与有关表中一条记录有关联。
例如: 班级与班长, 学校与校长
2、一对多联系:体现为主表中每一条记录与有关表中多条记录有关联。
例如: 班级与学生,部门与职工
3、多对多联系:体现为一种表中多种记录在有关表中同样有多种记录有关联。
例如: 学生与课程, 工程项目与零件
v 数据模型:不仅反映事物自身,还用来体现实体及实体之间联系措施。
1、层次模型:用树形构造体现实体及其之间联系模型称为层次模型。
2、网状模型:用网状构造体现实体及其之间联系模型称为网状模型。
3、关系模型:用二维表构造来体现实体及实体之间联系模型称为关系模型。
一种二维表称为一种关系,在VFP称为数据表。一种关系不仅体现实体自身还体现实体之间联系。
例:用树形构造体现实体之间联系模型是( )
A、关系模型 B、网状模型 C、层次模型 D、以上三个都是
二、关系数据库:
v 元组(Record):在一种关系中,水平方向行称为元组。在VFP中称为记录
v 属性(Field):一种二维表中垂直方向列称为属性。在VFP中称为字段名
v 域(Domain):属性取值范畴。根据数据类型和宽度来决定。
v 核心字(Primary Key):其值可以惟一标记一种元组属性或属性组合。
注:核心字不能浮现空值或反复值
v 外部核心字(Foreign Key):如果表中一种字段不是本表主核心字或侯选核心字,而是此外一种表主核心字或侯选核心字,这个字段在本表中称为外部核心字。
v 关系性质:
二维表中元组个数是有限——元组个数有限性
二维表中元组均不相似——元组惟一性
二维表中元组顺序可以任意互换——元组顺序无关性
二维表中元组分量是不可分割基本数据项——元组分量原子性
二维表中属性名各不相似——属性名惟一性
二维表中属性与顺序无关,可任意互换——属性顺序无关性
例:关系数据模型中体现实体和实体间联系构造是( )
A、树型 B、网状 C、二维表 D、对象
三、关系运算:
v 并(Union):是由两个关系元组构成集合。(两个关系必要具有相似关系模式)
v 差(Difference):若有两个相似构造关系R和S,R差S成果属于R但不属于S元组构成集合。
v 交(Intersection):若有两个相似构造关系R和S,交成果为两个关系共同元组。
v 选用(Selection):从关系中找出满足给定条件元组操作称为选用。
v 投影(Projection):从关系模式中指定若干个属性构成新关系称为投影。
v 联接(Join):是关系横向结合,关系模式变化了,是多种关系关系模式组合。联接成果是多种关系中满足条件元组。
展开阅读全文