VF建立数据库中多表之间的永久关系及临时关系实验

VF建立数据库中多表之间的永久关系及临时关系实验,第1张

选a,首先,关联关系只有两个,就是永久关系和临时关系,后面两个是乱写的答案,然后永久关系是在数据库环境中建立的,就算关闭vf后下次再打开这个数据库,它们之间的联系还是存在,而临时关系是在命令窗口中用“set

rela

to”命令建立的,当关闭vf后,此联系自动结束,下次打开它们之间的联系就没有了。

关系数据库体系结构与客户/服务器模式

关系数据库概述

关系数据库被定义为一种特殊的数据库 其中各个文件(称作关系)以平面文件(FlatFiles)或表的形式保持数据 表必须只含有一种记录类型 每个记录具有固定数目的字段 所有字段皆显示命名 表内的字段内容是各不相同的 不允许重复组(repeating groups) 不含有复制记录和预定的记录序列

在构造关系数据库时 必须特别注意关系的内容以及记录的各属性(字段)之间的内在联系

关系数据库上的基本 *** 作有选择 投影 连接和除法 选择建立一个含有与原始关系相同列数的新表 但是行只包括那些满足某些特写标准的原始关系行 投影 *** 作指定将被选择的列 因而形成的表只含有原始表列的一个子集 如果在投影 *** 作删除的列中有两个行不同 那么将只有一个记录被转入新的关系 连接 *** 作从两个或多个表中组合信息 两个表中的公用字段用作组合记录的基础字段 在公用字段中具有相等值的记录被连接在结果关系内

关系数据库实现的任务

实现关系数据库所涉及的任务分为三组

● 为DBMS定义数据库结构的任务

● 将数据库分配给物理存储介质的任务

● 建立数据库数据的任务

执行这些任务的方法取决于所采用的DBMS产品

各种不同的DBMS产品提供定义数据库结构的实用程序 这些实用程序使用一种专用的数据定义语言(DDL) 某些DBMS产品含有一些规定 一旦数据库已被定义到DBMS 即将该数据库分配到物理介质 根据应用程序处理的特点 数据可以定位在指定表上或定位在同一磁盘上 它有些DBMS产品偏重于数据库数据的建立

如上所述 数据库定义 存储分配以及数据建立过程都将取决于应用需求和所选择的特定DBMS产品的特征

关系数据 *** 作

为了开发数据库应用 需要使用一种语言来表达处理逻辑 关系数据 *** 作语言共有四类

● 关系代数 它是一种语言 提供一组远算符处理关系数据库中的关系

● 关系演算 它是一种语言 在该语言中用户指定一组来自关系数据库内数据 *** 作的结果

● 面向变换的语言 它们构成一类非过程语言 这类语言将表示为关系的输入数据变换成表示为单个关系的结果 SQL就是一种面向变换的语言

● 面向图形的系统 它们为用户提供一个关系结构的图形 如Borland的Paradox 和IBM公司的QBE(Query By Example)

用户可以采用多种方法与关系数据库进行联系

● 某些DBMS产品 包括有生成表格的工具并提供表格和报告的处理

● 通过查询语言提供一个接口 它们执行查询和更新功能 最重要的查询语言是SQL

● 与关系数据库联系的第三种方法是通过应用程序

扩展关系系统

众多的销售商都在积极扩展关系模型 这些扩展包括在关系表中存储复杂数据类型 存储过程 触发器以及二进制大对象(BLOB) 目前正在SQL 标准中考虑的SQL扩展将包括对对象的进一步支持 还有可能包括对用户定义数据类型及嵌套表的支持 向关系模型提供对象扩展的产品包括Sybase Informix Oracle和Borland

SQL:集成客户/服务器体系结构的基本链路

SQL为前面讨论的集成客户/服务器体系结构提供一条基本链路 目前美国国家标准局(ANSI)已认可SQL作为 *** 作数据库的正式工业标准 它是许多数据库管理系统(DBMS)产品都采用的数据存取语言

SQL允许用户在关系表数据上进行查询 建立新表 存取现有的远程表 *** 作数据 建立应用程序存取SQL数据 运行SQL语句 处理错误以及访问多个服务器 SQL数据库服务器是多用户关系数据库管理系统(DBMS)

SQL可以作为一个查询语言用于交互式使用或嵌入在应用程序中 在执行查询时 SQL接受一个或多个关系作为输入并产生一个关系作为输出 结果是一个表或平面文件 例如 一批不含有重复组的同一类型记录 在查询多个表时 SQL将这些表连接起来 SQL内还含有一些规定 用来向表中插入新数据 从表中删除数据或修改表中的数据

各种数据库服务器功能介绍

服务器数据管理包括若干软件 它们使用户可以访问网络中的任何节点以及确保多用户环境下的保密性 可恢复性和完整性 如前面所提到的 客户/服务器计算中的基本存取链路是SQL 它是一种高级非过程数据库语言 现在已开发出很多支持SQL 的后端服务器及DBMS 下面将描述这些产品

DB

DB 是一种由IBM公司开发的RDBMS 它使用SQL执行所有的数据库 *** 作 数据定义 数据存取 数据 *** 作以及授权功能 SQL语句由用户在一个客户机节点从键盘输入或嵌套在应用程序中

DB 的结构包括表 视图 表空间 索引 索引空间 数据库和存储组 这种RDBMS提供有允许用户动态建立和修改这些结构的工具 DB 还包括一些并行处理软件 以控制和限制干预 后备和恢复功能以及安全性保证等

并行处理通过锁来完成 当应用程序读数据库数据时 DB 在该数据上获取一个共享锁 允许其他应用程序读这个相同的数据 如果一个应用程序需要修改数据 那么DB 将一个互斥型锁放在该数据上 以阻止其它应用程序访问这个数据 DB 还提供一些关于锁的级别或锁的大小的任选项

DB 周期性地存储并检查所有数据库变化 所有驻留在系统缓冲区中的变化被写到数据库 并将一个变化的记录载入日志 以最近一次写到日志的变化起所建立的全部映像可用于完成系统故障的恢复 DB 包括一些用来从备份拷贝重新建立数据库的实用程序 这种实用程序含有一个选择项 允许用户只拷贝表空间中那些自最后一个备份后新被修改的页面

DB 还含有一些用来保护数据库的安全性规定

Borland对象成分体系结构(BOCA)

BOCA建立了一个既考虑开发工具又考虑数据库管理工具的客户/服务器体系结构 它将一级面向对象的工具 中间件和数据库服务器技术集中在一起提供客户/服务器的解决方案 该体系结构的组成部分有

先进的面向对象工具

Borland建立有广泛基础和紧密集成的面向对象的工具 这些工具充分利用了当前客户/ 服务器变革的优点 使用面向对象的方法学 建立了如下产品 Borland C++ Borland Delphi Paradox QuattroPro Visual dBase以及ObjectVision等

IDAPI

IDAPI(集成数据库应用程序设计接口)是Borland公司的SQL连通性解决方法 IDAPI使得开发人员能够以更高的效率建立数据库应用 允许用户在多种硬件和 *** 作系统平台以及网络环境下访问 以多种数据库格式存储的数据

InterBase

InterBase是一种分布式SQL数据库服务器 它支持每个数据库系统查询数据并将信息返回到其它任何一个InterBase服务器 InterBase 的可变体系结构代表了关系系统技术的第三次浪潮 可变引擎使得InterBase可以以最少的锁支持高效事务处理和决策支持事务处理

Borland公司的面向对象技术使得开发人员可以通过构造模块化的应用成分来建立复杂客户/服务器系统 这些模块化应用成分可以很容易地开发 测试 维护和增强 并可方便地装配到复杂的应用程序包中 此外Borland公司的可视化技术极大地提高了软件生产率

Informix SQL服务器系列

Informix公司推出了多种产品来满足特定的客户/服务器需求 它们包括Informix On Line Informix TP/XA Informix Star Informix On Line/Optical和Informix On Line工作站版

Informix On Line是一个联机事务处理(OLTP)数据库服务器 具有可用性 数据完整性以及多媒体数据管理能力 它建立有效的数据存储方法进行快速数据存取 缓冲数据于内存最低限度地使用磁盘存取 利用多处理器特征 允许不同处理器同时存取 以及自动确定是有效的搜索策略等 从而获得极高的性能

Informix TP/XA将On Line连接到事务处理管理程序 支持那些涉及多个数据库以及多个DBMS(由不同的销售商提供)的事务处理 在众多RDBMS中 Informix 第一个向依从于X/Open XA的事务处理管理程序提供了这种基于标准的接口

Informix STAR是一种用于On Line的分布式客户/服务器数据库产品 它提供最佳的性能 并且具有最小的网络通信量 站点透明性以及在不同站点 *** 作数据库的高度可靠性

Informix On Line/Optical是一种针对On Line用户的附加产品 这些用户想在他们的数据库系统上使用具有大容量存储能力的光学设备 On_Line/Optical允许用户在 写一次读多次 (WORM)的光学子系统上存储BLOB 用户必须拥有On Line/Optical On Line和一个光学子系统 那当然 如果没有这个On Line/Optical产品用户仍可以使用On LIne在磁存储设备上 *** 作BLOB

Informix On Line工作站版是On Line管理员手册的图形化版本 该工作站版具有与硬件版本相同的技术内容 但它是构造在一个窗口化 点一揿式(Point and Click)图形接口 采用关键字交叉查阅 这使得用户可以在某一窗口中存取所需信息的同时 在另一窗口中配置监视或调节On Line

lishixinzhi/Article/program/Delphi/201311/25138

1)一对一的关系

例如:一个人对应一个唯一的身份z号,即为一对一的关系。

2)一对多关系

例如:一个班级对应多名学生,即为一对多关系

3)多对多关系

例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系即是多对多关系。

两张表之间是否有关系取决于所描述的实体,在设计时,就决定了表之间是否存在“一对多”或“一对一”关系。在VFP中,表之间的关系有两种存在方式,表之间的永久性关系和表之间的临时性关系。

1表之间的永久性关系:数据库之间的一种关系,不仅在运行时存在,而且一直保留。表必须在同一数据库中。永久性关系时通过索引建立的。在一对多关系中,主表必须有主索引关键字或者候选索引关键字,子表则使用普通索引关键字。在一对一关系中,两张表斗用主索引关键字或者候选索引关键字。

2表之间的临时性关系:在打开的表之间用SET RELATION TO命令建立的,子表必须创建以外部关键字为索引表达式的索引,并把索引设置为主控索引,再在另一个工作区中打开主表,用命令建立临时关系。建立后就会使得子表的记录指正随父表记录指针的移动而移动。这种控制的实质是根据主表的关系表达式的值在子表的主控索引中进行快速定位。

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

数据库的一些概念我希望得到明确一些的定义,最好举个例子因为脑子反应比较慢

基本表,代码表,中间表,报表,临时表

这几个表都是什么东西,能否给解释一下,都用来做什么的,什么情况下要用到

解析:

数据库系统的基本概念

数据:实际上就是描述事物的符号记录。

数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。

数据库:是数据的 ,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。

数据库存放数据是按数据所提供的数据模式存放的,具有集成与共享的特点。

数据库管理系统:一种系统软件,负责数据库中的数据组织、数据 *** 纵、数据维护、控制及保护和数据服务等,是数据库的核心。

数据库管理系统功能:

(1)数据模式定义:即为数据库构建其数据框架;

(2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段;

(3)数据 *** 纵:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算及统计;

(4)数据的完整性、安生性定义与检查;

(5)数据库的并发控制与故障恢复;

(6)数据的服务:如拷贝、转存、重组、性能监测、分析等。

为完成以上六个功能,数据库管理系统提供以下的数据语言:

(1)数据定义语言:负责数据的模式定义与数据的物理存取构建;

(2)数据 *** 纵语言:负责数据的 *** 纵,如查询与增、删、改等;

(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。

数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。

数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。

数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。

数据库应用系统:由数据库系统、应用软件及应用界面三者组成。

文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。

层次数据库与网状数据库系统阶段 :为统一与共享数据提供了有力支撑。

关系数据库系统阶段

数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制。

数据库系统的三级模式:

(1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图;

(2)外模式:也称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式;

(3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。

数据库系统的两级映射:

(1)概念模式到内模式的映射;

(2)外模式到概念模式的映射。

42 数据模型

数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与 *** 作提供一个抽象的框架。描述了数据结构、数据 *** 作及数据约束。

E-R模型的基本概念

(1)实体:现实世界中的事物;

(2)属性:事物的特性;

(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。

E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。

E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。

层次模型的基本结构是树形结构,具有以下特点:

(1)每棵树有且仅有一个无双亲结点,称为根;

(2)树中除根外所有结点有且仅有一个双亲。

从图论上看,网状模型是一个不加任何条件限制的无向图。

关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个关系。

在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。

关系中的数据约束:

(1)实体完整性约束:约束关系的主键中属性值不能为空值;

(2)参照完全性约束:是关系之间的基本约束;

(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。

43关系代数

关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据 *** 作,其中最为著名的是关系代数与关系演算。

关系模型的基本运算:

(1)插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算)

44 数据库设计与管理

数据库设计是数据应用的核心。

数据库设计的两种方法:

(1)面向数据:以信息需求为主,兼顾处理需求;

(2)面向过程:以处理需求为主,兼顾信息需求。

数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。

需求分析常用结构析方法和面向对象的方法。结构化分析(简称SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。

数据字典是各类数据描述的 ,包括5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。

数据库概念设计的目的是分析数据内在语义关系。设计的方法有两种

(1)集中式模式设计法(适用于小型或并不复杂的单位或部门);

(2)视图集成设计法。

设计方法:E-R模型与视图集成。

视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。

视图集成的几种冲突:命名冲突、概念冲突、域冲突、约束冲突。

关系视图设计:关系视图的设计又称外模式设计。

关系视图的主要作用:

(1)提供数据逻辑独立性;

(2)能适应用户对数据的不同需求;

(3)有一定数据保密功能。

数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。

数据库管理的内容:

(1)数据库的建立;

(2)数据库的调整;

(3)数据库的重组;

(4)数据库安全性与完整性控制;

(5)数据库的故障恢复;

(6)数据库监控。

关系的究整性

关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。

一、实体完整性(Entity Integrity)

规则21 实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值。

例如在关系“SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)”中,“研究生姓名POSTGRADUATE”属性为主码(假设研究生不会重名),则“研究生姓名”不能取空值。

实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

对于实体完整性规则说明如下:

(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。

(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。

(3)相应地,关系模型中以主码作为唯一性标识。

(4)主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。

二、参照完整性(Referential Integrity)

现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。先来看三个例子。

例1 学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识:

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。这也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。

规则22 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

·或者取空值(F的每个属性值均为空值);

·或者等于S中某个元组的主码值。

三、用户定义的完整性(User-defined Integrity)

任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在 0~100之间等。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。

--我也是初学者,共同研究下,你最好一段一段执行,要不就没意义了

use school

drop table teacher1

drop table student1

go

create table teacher1

(

t_id int primary key,

t_name nvarchar(10) not null

)

go

insert into teacher1 values(1347,'张三')

insert into teacher1 values(2680,'李四')

insert into teacher1 values(6379,'王五')

go

create table student1

(

s_id int primary key,

t_id int

)

go

alter table student1

add constraint FK foreign key(t_id) references teacher1(t_id) on update cascade

insert into student1 values(1,2680)

insert into student1 values(2,6379)

insert into student1 values(3,1347)

insert into student1 values(4,6379)

insert into student1 values(5,1347)

--两个表建好了,大概按照你的意思,不知道是不是这种情况

go

select from student1;

select from teacher1; --查询所有数据

go

--在student1表(外键表)中加入一组数据

insert into student1 values(6,1234) --失败了,因为外键表中外键的值必须是引用主键表中关联的主键的值

--也就是外键约束,或称参照完整性

--外键约束是约束外键的数据的取值的

insert into teacher1 values(1234,'童川') --然后在teacher1表(主键表)中加一组数据

--成功,外键约束对主键表被引用的主键无影响

insert into student1 values(6,1234) --成功,验证了失败的原因

go

select from student1;

select from teacher1; --再次查询所有数据

--on update cascade 这个东西我也没学过,百度了一下,大概明白了

go

update teacher1 set t_id = t_id + 10000

where t_name in('童川') --成功

update student1 set t_id = t_id + 10000 --提示与外键约束发生冲突

go

select from student1;

select from teacher1; --看到了么学生表中引用'童川'老师的数据的一列数据中t_id的值也随之改变

--我想这就是on update cascade的作用

以上就是关于VF建立数据库中多表之间的永久关系及临时关系实验全部的内容,包括:VF建立数据库中多表之间的永久关系及临时关系实验、DELPHI基础教程:Delphi客户服务器应用开发(一)[2]、关系数据库表之间有哪几种关系类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10193949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存