版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲教师:赵晓瑜zhaoxiaoyu_ 工程技术系 2011年2月 1、课程作用,课程重要性:没有数据库,就不可能有管理系统。对于任何一个管理系统而言,数据库是它所必备的。 2、如何学好这门课程:勤动脑+多动手!1.1 数据库基本概念数据库基本概念1.2 关系数据库设计关系数据库设计1.3 数据库应用系统数据库应用系统1.4 MySQL概述概述 对数据库技术的功能及实际应用有个整体对数据库技术的功能及实际应用有个整体认识;认识; 理解并掌握数据库的常用术语及基本概念理解并掌握数据库的常用术语及基本概念(Data、DB、DBMS、DBS等)等) 理解数据库系统的特点理解数据库系统的特点 掌握关系
2、数据库的设计掌握关系数据库的设计 MYSQL的安装和配置的安装和配置对数据库“想当然想当然”的理解:数据库应该是存放数据的仓库?那么什么是“数据”呢?1. 数据库( DataBase) 数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。 数据库是长期存储在计算机内、有组织的、可共享的数据集合。这种集合具有如下特点: 最小的冗余度 应用程序对数据资源共享 数据独立性高 统一管理和控制 1.1.1 数据库与数据库管理系统数据库与数据库管理系统2. 数据库管理系统(DataBase Management System,简记为DBMS) DBMS是管理数据库的
3、系统,它按一定的数据模型组织数据,是位于用户与操作系统之间的一个数据管理软件。DBMS应提供如下功能:(1)数据定义功能 用户通过数据定义语言(DDL,Data Definition Language)它可以方便地对数据库中的数据对象进行定义。(2)数据操纵功能 用户可以使用数据操纵语言(DML,Data Manipulation Language) 操纵数据,实现对数据的基本操作。如查询、插入、删除和修改。(3)数据的完整性检查功能 保证用户输入的数据应满足相应的约束条件。(4)数据库的安全保护功能 保证只有赋予权限的用户才能访问数据库中的数据。(5)数据库的并发控制功能 使多个应用程序可在
4、同一时刻并发地访问数据库的数据。(6)数据库系统的故障恢复功能 使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行。(7)在网络环境下访问数据库的功能。(8)方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库管理员通过提供的工具对数据库进行管理。3、数据库系统(DataBase System,简记为DBS) 数据库系统一般由数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件、软件平台和与数据库有关的人员构成。图1.1描述了数据库系统的构成。图1.1 数据库系统的构成4、数据(Data) “数据”是一个多义词,分为
5、有意义的数据和无意义的字节数据 硬盘可硬盘可存储30G数据 把U盘数据拷到硬盘去 学生信息表中的数据 实验结果表中的数据 因此数据库中的数据是指有意义的数据 数据是描述现实世界事物的符号记录,是用物理符号记录的可以鉴别的信息。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。 1 1、数据库技术的产生与发展、数据库技术的产生与发展 数据管理技术经历了如下三个阶段:人工管人工管理阶段、文件系统阶段和数据库系统阶段。理阶段、文件系统阶段和数据库系统阶段。 人工管理阶段人力手工整理存储数据 特点是:数据不保存、数据无专门软件进行管理、数据不共享、数据不具有独立性、数据无结构。 文件系统
6、阶段使用磁盘文件来存储数据 特点是:数据可以长期保存、由文件系统管理数据、程序与数据有一定的独立性、数据共享性差、数据独立性差、记录内部有结构。 数据库系统阶段 关系型数据库 特点:数据结构化 在描述数据时不仅描述数据本身,还描述数据之间的联系。数据共享性高、冗余度小、易扩充 数据可以被多个应用共享。这不仅大大减小了数据的冗余度、节约存储空间、减少存取时间,而且可以避免数据之间的不相容性和不一致性。数据独立性高 数据独立性包括物理独立性和逻辑独立性。数据的物理独立性是指当数据的物理存储改变时,应用程序不用改变。数据的逻辑独立性是指当数据的逻辑结构改变时,用户应用程序不用改变。统一的数据管理和控
7、制 数据库对系统中的用户是共享资源。计算机的共享一般是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。因此,数据库管理系统必须提供以下几个方面的数据控制保护功能。 数据的安全性(security)保护 数据的完整性(integrity)控制 数据库恢复(recovery) 并发(concurrency)控制2、数据库系统的体系结构集中式系统 DBMS和应用程序以及与用户终端进行通信的软件等都运行在一台宿主计算机上,所有的数据处理都是在宿主计算机中进行。宿主计算机一般是大型机、中型机或小型机。应用程序和DBMS之间通过操作系统管理的共享内存或应用任务区来进行通信
8、,DBMS利用操作系统提供的服务来访问数据库。终端通常是非智能的,本身没有处理能力。 集中系统的主要优点是:具有集中的安全控制,以及处理大量数据和支持大量并发用户的能力。集中系统的主要缺点是:购买和维持这样的系统一次性投资太大,并且不适合分布处理。个人计算机系统 与大型系统不同,通常个人计算机(微机)上的DBMS功能和数据库应用功能是结合在一个应用程序中的,这类DBMS(如FoxPro、Acssce)的功能灵活,系统结构简洁,运行速度快,但这类DBMS的数据共享性、安全性、完整性等控制功能比较薄弱。客户/服务器系统 在客户/服务器(Client/Server,简记为C/S)结构的数据库系统中,
9、数据处理任务被划分为两部分:一部分运行在客户端,另一部分运行在服务器端。客户端负责应用处理,数据库服务器完成DBMS的核心功能。 这种模型中,客户机上都必须安装应用程序和工具,使客户端过于庞大、负担太重,而且系统安装、维护、升级和发布困难,从而影响效率。分布式系统 一个分布式数据系统由一个逻辑数据库组成,整个逻辑数据库的数据,存储在分布于网络中的多个结点上的物理数据库中。在当今的客户/服务器结构的数据库系统中,服务器的数目可以是一个或多个。当系统中存在多个数据库服务器时就形成了分布系统。浏览器/服务器系统 随着Internet的迅速普及,出现了三层客户机/服务器模型:客户机应用服务器数据库服务
10、器。这种系统称为浏览器/服务器(Browser/Server,简记为B/S)系统。3 3、数据库系统三级模式结构、数据库系统三级模式结构 从DBMS方面考虑,数据库系统通常采用三级模式结构,这是DBMS内部的系统结构。模式(schema) 模式也称为逻辑模式,是数据中全体数据的逻辑结构和特征描述,是所有用户的公共数据视图。 一个数据库只有一个模式。DBMS提供描述语言(模式DDL)来严格定义模式。外模式(external schema) 外模式也称为子模式或用户模式,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式
11、通常是模式的子集。一个数据库可以有多个外模式。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中其余数据是不可见的。 DBMS提供子模式描述语言(子模式DDL)来严格定义子模式。内模式(internal shcema) 内模式也称为存储模式(storage shcema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。 DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格定义内模式。三级模式之间的映射 三级模式间有两种映射:模式/外模式映射、模式/内模式映射 模式/外模式映射定义某个外模式和
12、模式的对应关系,当模式发生改变时,只要改变其映射,而无需改动外模式,从而保证了数据的逻辑独立性。 模式/内模式映射定义内模式和模式的对应关系,当内模式发生改变时,只要改变其映射,而无需改动模式,从而保证了数据的物理独立性。4 4、 数据模型及其组成要素数据模型及其组成要素 数据库系统的核心是数据库,数据库是根据数据模型建立的,因而数据模型是数据库系统的基础。 数据模型通常都是由数据结构、数据操作和完整性约束3个要素组成。 数据结构数据结构 数据结构研究数据元素之间的组织形式、存储形式以及数据操作等。数据结构用于描述系统的静态特性。 在数据库系统中,通常按照其数据结构的类型来命名数据模型。例如层
13、次结构、网状结构、关系结构的数据模型分别命名为层次模型、网状模型和关系模型。 数据操作数据操作 数据操作用于描述系统的动态特性。数据操作是指对数据库中的各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。 数据库主要有查询和更新两大类操作。 数据完整性约束数据完整性约束 数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。 数据模型是数据库技术的关键,它的3个要素完整地描述了一个数据模型。1.1.2. 1.1.2. 数据模型的种类数据模型的种类目前,数据库领域中
14、,最常用的数据模型有:层次模型、网状模型和关系模型。 层次模型 层次模型是数据库中最早出现的数据模型。用树型结构表示实体类型以及实体间的联系是层次模型的主要特征。 层次模型的一个最基本的特点是,任何一个给定的记录值(也称为实体)只有按照其路径查看时,才能显出它的全部意义。没有一个子记录值能够脱离双亲记录值而独立存在。图1.2 按层次模型组织的数据示例 网状模型 每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。在网状模型中,一个子结点可以有多个父结点,在两个结点之间可以有一种或多种联系。图1.3为按网状模型组织的数据示例。图1.3 按网状模
15、型组织的数据示例 关系模型 在关系模型中,数据在用户观点下的逻辑结构就是一张二维表。每一张二维表称为一个关系(relation)。 表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,字段名n),通常把关系表的结构称为关系模式。在关系表中,如果一个字段或几个字段组合的值可唯一标志其对应记录,则称该字段或字段组合为码。有时一个表可能有多个码,如表A.4中,姓名不允许重名,则“学号”、“姓名”均是学生信息表码。对于每一个关系表通常可指定一个码为“主码”,在关系模式中,一般用下横线标出主码。按关系模型组
16、织的数据表达方式简洁、直观,插入、删除、修改操作方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、修改操作复杂。因此,关系模型得到了广泛应用,MySQL是支持关系数据模型的数据库管理系统。1.2.1 数据库设计概述 数据库设计的主要内容有数据库的结构特性设计和数据库的行为特性设计。 数据库的结构特性设计起着关键作用。数据库的结构特性是静态的,一般情况下不会轻易变动。 数据库的行为结构设计是指确定数据库用户的行为和动作。数据库用户的行为和动作是指数据查询和统计、事物处理及表报处理等。1.2.2 数据库设计的基本步骤 考虑数据库及其应用系统开发的全过程,可以将数据库设计过程可分为以下6个
17、阶段。需求分析阶段 调查用户需求的具体步骤是:调查使用该系统的组织单位的具体情况,包括部门组成、部门职责、部门人员等,了解使用组织的各个信息。调查使用系统的各部门的业务活动。包括各部门使用该系统的业务流程、业务数据、以及业务功能等,了解各部门的业务相关信息。在熟悉了各部门组织及业务情况后,协助用户明确对该系统的各种功能的需要,包括需要的数据要求、对数据的处理要求、对整个系统的安全要求等,从而与客户达成共识。确定该系统的最终功能。这是需求分析的最后一步,在完成以上三个步骤后,最终要求客户需要分析人员确定系统的功能,具体确定当前阶段系统应该完成的功能,以及后期系统扩展需要完成的功能。 概念结构设计
18、阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,一般用E-R图表示概念模型。 逻辑结构设计阶段 逻辑结构设计是将概念结构转化为选定的DBMS所支持的数据模型,并使其在功能、性能、完整性约束、一致性和可扩充性等方面均满足用户的需求。数据库物理设计阶段 数据库的物理设计通常分为两步进行: (1) 确定数据库的物理结构:数据存放方法和存储结构 具体的关系模式存取方法主要包括以下两种选择:一是索引方法,一是聚簇方法,一是HASH方法。 (2)评价所确定的物理结构数据库实施阶段 数据库实施阶段的任务是根据逻辑设计和物理设计的结果,在计
19、算机上建立数据库,编制与调试应用程序,组织数据入库,并进行系统测试和试运行。 数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。信息世界中的基本概念 实体(entity) 客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如:酒店里,一名客人、一名前台服务员、一名前台主管等都是实体,同样,前台主管与前台服务员之间的联系称为实体。 属性(attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。若干属性中能唯一标识实体的属性称为该实体的码。主码(prima
20、ry key) 惟一标识实体的属性集称为主码。 例如,学生号是学生实体的主码,职工号是职工实体的主码。域(domain) 属性的取值范围称为该属性的域。 例如,职工性别的域为(男,女),姓名的域为字母字符串集合,年龄的域为小于150的整数,职工号的域为5位数字组成的字符串等。实体型(实体型(entity typeentity type) 具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。 例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。实体集(实体集(entity setentity set) 同型实体的集合称为实体集。
21、例如,全体学生就是一个实体集。 图书馆的图书也是一个实体集。 联系(联系(relationshiprelationship) 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。概念模型的表示方法概念模型的表示方法 概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体联系方法(Entity-Relationship Approach,简记为E-R表示法)。 该方法用ER图来描述现实世
22、界的概念模型,称为实体联系模型,简称E-R模型。E-R图中各图形的含义及图示见表1-1。 需要注意的是,联系本身也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。表1-1 E-R图中各图形的含义对象类对象类型型 E-RE-R图表示方法图表示方法 E-RE-R图表示图图表示图示示 学生、课程示学生、课程示例例 实体 用矩形表示,矩形内写明实体名称。属性 用椭圆形表示,椭圆内写明属性名称,并用无向边将其与实体连接起来。联系 用菱形表示,菱形内写明联系名称,用无向边分别与有关实体连接起来,并在无向边旁标明联系的类型。实体属性联系学生学号选课对于每一个实体集,可指定一个码为主
23、码。如果用矩形框表示实体集,用带半圆的矩形框表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线,则可以用图1.4描述学生成绩管理系统中的实体集及每个实体集涉及的属性。图1.4 学生和课程实体集属性的描述 1.2.2 概念结构设计概念结构设计 实体集A和实体集之间存在各种关系,通常把这些关系称为“联系”。通常将实体集及实体集联系的图表示为实体(Entity)-联系(Relationship)模型;从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程称为概念结构设计。联系用菱形表示,通过直线与实体相连。这样构成的图就是E
24、-R图,E-R图就是E-R模型的描述方法。1. 一对一的联系(1:1)A中的一个实体最多与B中的一个实体相联系,B中的一个实体也最多与A中的一个实体相联系。例如,一般情况下,“部门”与“主管”这两个实体集之间的联系是一对一的联系 一对多的联系(1:n) 如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系(n0),反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n 。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为,一个班可有若干学生,反过来,一个学生只能属于一个班。3. 多对多的联系(m:n) 如果对
25、于实体集A中的每一个实体,实体集B中有n个实体与之联系(n0),反之,对于实体集B中的每一个实体,实体集A中也有m个实体与之联系(m0),则称实体集A与实体集B具有多对多联系,记为m:n 。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修。注意: 一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。实体型之间的这种一对一、一对多、多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。【例1】在选课系统中,一门课程同时有若干个学生选修
26、(学生的属性主要包括:学号、姓名、性别、年龄、所在系等) ,而一个学生可以同时选修多门课程(课程的属性主要由课程号、课程名、学分组成,则课程与学生之间具有多对多联系。学号所在系年龄姓名性别学生课程号课程名学分课程成绩选课mn【例2】职工实体集内部有领导与被领导的联系。即某职工为部门领导,“领导”若干职工,而一名职工仅被另外一个职工(领导)直接领导,因此这是一对多联系。职工领导1n 【例3】图书借阅系统概念模型设计。该系统中有读者(属性有:编号、姓名、读者类型、已借数量组成)、图书(属性有:编号、书名、出版社、定价、出版日期组成)两个实体集,实体集之间通过借阅(属性有:借期、还期组成)建立联系。
27、假定一位读者可以借阅多本图书,一本图书可以经多位读者借阅。一本图书一位读者可以借阅多次(不同时间)。 读者编号姓名读者类型已借数量图书出版日期出版社编号书名定价借期还期借阅mn 将E-R模型转换成关系数据模型必须遵循以下规则:一、E-R图中的每个实体型转换成一个关系模式,实体型中的实体的属性转换成关系模式的属性。实体的码也是关系模式的码。二、E-R图中的联系,根据联系类型的不同,采用不同的方法使被它联系的实体所对应的关系彼此有某种联系。具体有以下几种不同的情况: 1. (1:1)联系的E-R图到关系模式的转换(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模
28、式,其主码为参与联系的实体集中任一方的主码。例如,考虑图1.5描述的“班级(BJ)”与“正班长(BZ)”实体集E-R模型可设计如下关系模式:BJ(班级编号,院系,专业名,人数)BZ (学号,姓名)SY(学号,班级编号) (2)联系不单独对应一个关系模式,则将联系的属性及一方的主码加入另一方实体集对应的关系模式中,主码仍为原实体方的主码。例如,图1.5“班级(BJ)”与“正班长(BZ)”实体集E-R模型可设计如下关系模式:BJ(班级编号,院系,专业名,人数)BZ (学号,姓名,班级编号 )或者BJ(班级编号,院系,专业名,人数,学号)BZ (学号,姓名)2. (1:n)联系的E-R图到关系模式的
29、转换(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,考虑图1.6描述的“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式:BJ(班级编号,院系,专业名,人数)XS (学号,姓名,专业名,性别,出生日期,总学分,备注)SY(学号,班级编号)(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,图1.6“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式:BJ(班级编号,院系,专业名,人数)XS (学号,姓名,专业名,性别
30、,出生日期,总学分,备注,班级编号 3. (m:n)联系的E-R图到关系模式的转换对于(m n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如,图1.7描述的“学生(XS)”与“课程(KC)”实体集之间的联系可设计如下关系模式:XS (学号,姓名,专业名,性别,出生日期,总学分,备注)KC(课程号,课程名称,类别,开课学期,学时,学分)XS_KC (学号,课程号,成绩)关系模式XS_KC的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。至此,已介绍了根据E-R图设计
31、关系模式的方法,通常这一设计过程称为逻辑结构设计。在设计好一个项目的关系模式后,就可以在数据库管理系统环境下创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据中的数据进行各种操作。练习:将如下图所示的E-R图转换为关系模式,棱形框中的属性自己确定。 解:本题的E-R图转换为如下关系模式:单位(单位号,地址,电话)职工(职工号,姓名,性别,年龄,单位号)练习:设有商业销售记账数据库。一个顾客(顾客姓名,单位,电话号码)可以买多种商品,一种商品(商品名称,型号,单价)供应多个顾客。试画出对应的E-R图。 并根据E-R图转换成相应的关系模式。解:本题对应的E-R图如图所示。关系模式为
32、:顾客(顾客姓名,单位,电话号码);商品(商品名称,型号,单价);购买(顾客姓名,商品名称);数据的物理模型即指数据的存储结构,如对数据库物理文件和索引文件的组织方式、文件的存取路径、内存的管理等。物理模型不仅与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用户是不可见的。 问题的提出问题的提出 在活期储蓄管理过程中,“储户”通过“存取款”与“储蓄所”发生业务联系。试设计活期储蓄管理系统数据库的概念模型、关系模型并确定约束。 系统需求分析系统需求分析 通过对数据库用户(储蓄所业务人员)的调查,对用户的需求进行分析得知:储户是指在某个储蓄所开户的人。该储蓄所称为储户的开户行。一个储蓄所
33、可以有多个储户,每个储户有惟一的账号。每个储户可以在多个允许发生业务的储蓄所进行存取款。储户按信誉分为“一般”和“良好”两种。信誉“一般”的储户不允许透支。信誉“良好”的储户可以透支,但不能超过5万元。储户按状态分为:“正常”和“挂失”两种(分别用0、1表示)。状态为“正常”的储户允许存取款,状态为“挂失”的储户不允许存取款。储户的信息有:账号、姓名、密码、电话、地址、信誉、存款额、开户行编号、开户日期、状态等。储蓄所的信息有:编号、名称、电话、地址、负责人储户进行存取款时应该提供账号、存取标志(1:表示存款,0:表示取款)、存取金额、存取日期等信息,储蓄所首先要对储户的身份进行验证,对合法的
34、储户再根据“信誉”判断是否可以发生此次业务。若发生业务则记录相应信息,修改储户的存款额。 概念模型设计概念模型设计 根据需求分析得知,此系统涉及“储户”和“储蓄所”两个实体集。两个实体集间通过“存取款”发生多对多的联系。其E-R图如图2-2所示。 名称储户储蓄所存取款开户行存款额信誉地址电话账号姓名储蓄所编号电话地址存取日期存取标志存取金额mn图2-2活期储蓄管理系统的E-R模型 关系模型设计关系模型设计 由概念模型向关系模型的转换规则知,关系模型中包括3个关系:实体集“储户”和“储蓄所”分别形成关系,实体的码就是关系的码;联系“存取款”形成一个关系,该关系的码应该包括两个实体的码,考虑到允许
35、同一储户在同一储蓄所多次存取款,所以联系“存取款”对应的关系的主码中还应该包括“存取日期”。 另外,考虑到储户的信息项较多,而且有一部分信息(如:账号、姓名、电话、地址、开户行等)相对固定,其余信息(如:储户的密码、信誉、状态、存款额等)经常变化。因此,可以将实体储户的信息分割为储户基本信息和储户动态信息两个关系,两个关系的码均为账号。这样更利于数据的存储和维护,还可以提高数据的安全性。 储户基本信息(账号,名称,电话,地址,开户行,开户日期) 储户动态信息(账号,密码,信誉,存款额,状态) 储蓄所(编号,名称,电话,地址) 存取款(账号,储蓄所编号,存取标志,存取金额,存取日期) 约束关系约
36、束关系 实体完整性 实体“储户”的主码“账号”不能为空;实体“储蓄所”的主码“编号”不能为空。关系“存取款”中的主码“账号”和储蓄所“编号”和“日期”不能为空。 参照完整性 参照关系“存取款”的属性“账号”和储蓄所“编码”分别是被参照关系“储户”和“储蓄所”的外码。因此,参照关系“存取款”的属性“账号”的值必须是被参照关系“储户”中某一元组的“账号”的值。同样,参照关系“存取款”的属性储蓄所“编号”的值必须是被参照关系“储蓄所”中某一元组的“编号”的值。 用户定义的完整性 对信誉为“一般”的储户取款时,只有当: “储户.存款额”“存取款.金额”0 时才可以发生取款业务。 同理,对信誉为“良好”
37、的储户取款时,只要: “储户.存款额”“存取款.金额”50000(元) 时便可以发生取款业务。 关系结构描述 表2-17给出的活期储蓄管理系统的关系结构描述,实际上是给出了该系统数据库模式的型。数据说明: 0 正常 0 一般储户,不允许透支储户状态= 信誉= 1 挂失 1 允许透支5万元 0 取款存取标志= 1 存款1 1、关系模型的结构、关系模型的结构关系(relationship) 关系是满足一定条件的二维表。表中的一行称为关系的一个元组,用来存储事物的一个实例;表中的一列称为关系的一个属性,用来描述实体的某一特征。表是由一组相关实体组成的集合。所以,表和实体集这两个词常常可以交替使用。
38、表2-1给出了实体集、关系、表等一系列术语之间的对照关系概念模型中关系理论中关系数据库中某些软件中实体集(Entity set)关系(relation)表(Table)表(或数据库文件)实体(Entity)元组(Tuple)行(Row)记录(Recode)属性(Attribute)属性(Attribute)列(Col)字段(Field)主码(Primary key) 主码(Primary key)关键字(Primary key)关键字(Primary key) 关系是一个行与列交叉的二维表,每一列(属性)的所有数据都是同一种数据类型的,每一列都有惟一的列名,列在表中的顺序无关紧要;表中的任意两
39、行(元组)不能相同,行在表中的顺序也无关紧要。 表表2-22-2以图书借阅系统为例给出了一个表的实例以图书借阅系统为例给出了一个表的实例编号书名作者出版社出版日期定价F12.245计算机文化基础刘凌志青山2002.521.80F33.33数据结构实用教程王云晓蓝天2002.522.00G22.12Visual Basic实用教程梁晓峰碧水2003.1028.00G11.22Java程序设计实用教程张大海碧水2004.720.80F23.55数据结构(C语言版)马志刚青山2004.724.50G11.11C语言程序设计张大海蓝天2004.826.30G12.08C语言程序设计梁晓峰青山2004.
40、1022.00G12.09C语言程序设计梁晓峰青山2004.1022.00关系的特点:关系的特点:关系的每一行定义实体集的一个实体,每一列定义实体的一个属性。每一行必须有一个主码,主码是一个属性组(可以是一个属性),它能惟一的标识一个实体。每一列表示一个属性,且列名不能重复。 列的每个值必须与对应属性的类型相同。 列有取值范围,称为域。 列是不可分割的最小数据项。 行、列的顺序对用户无关紧要。 关系中的术语关系中的术语候选码(Candidate Key) 若关系中的某一属性组(或单个属性)的值能惟一的标识一个元组,则称该属性组(或属性)为候选码。 选择一个候选码作为关系的主码。2、关系代数 关
41、系代数是一种抽象的查询语言。从数学的角度来看,关系是一个集合,关系的元组是集合的元素。因此,关系代数包括集合运算:交、并、差、乘,还有关系专有的运算:选择、投影、连接、除。 并并(union)(union) 设R和S是两个关系,它们的并运算是将两个关系中的所有元组构成一个新关系,即由属于R或属于S的元素组成,该关系用RS,也可以记做R+S。 【例1】有在职职工和离退修职工两个表,若需要所有职工的表,可以利用并运算实现。工号 姓名 性别状态106001 张春来男1103026 马宏明男1105008 王红女1表表2-3 2-3 在职职工表在职职工表 表表2-4 2-4 离退修职工表离退修职工表S
42、 S工号姓名性别 状态106008李建新男 0104012王红女 0表表2-5 2-5 新关系新关系SS工号 姓名 性别状态106001 张春来男1103026 马宏明男1105008 王红女1106008李建新男 0104012王红女 0差(差(difference) 设R和S是两个关系,R和S的差运算是由属于R而不属于S的所有元组构成新关系,也就是从关系R中减去关系S中的元组,该关系用R-S。差运算也要求两个关系对应属性的性质(属性名、属性的域等)必须一致。 【例2】某商店有本店商品表,接到不合格商品表后,需要将本店中的不合格商品去掉。可以利用差运算实现。表表2-6 2-6 本店商品表本店
43、商品表 品牌 名称 厂家 106001奶粉 天南103026奶粉地北205008白糖 南山204045白糖 北山302034食盐西山表表2-72-7 不合格商品表不合格商品表品牌 名称 厂家 103026奶粉地北4023037 火腿 西山 204045白糖 北山表表2-8 2-8 新关系新关系 品牌 名称 厂家 106001奶粉 天南205008白糖 南山302034食盐西山交(交(intersectionintersection) 设R和S是两个关系,R和S的交运算是由属于R并且也属于S的所有元组构成的一个新关系,即由关系R和关系S中公共的元组构成的新关系。该关系用RS。交运算也要求两个关系
44、对应属性的性质(属性名、属性的域等)必须一致。 【例3】在【例2】中,找出本店内不合格的商品,可以用交运算实现。品牌 名称 厂家 103026奶粉地北204045白糖 北山表表2-9 2-9 新关系新关系 乘(乘(productproduct) 设R和S是两个关系,R和S的乘运算是一个新关系(记为RS)结果是两个关系中所有元组按一定规则组合而成。关系R有m个属性,关系S有n个属性,则RS由(m+n)个属性;R有i个元组,S有j个元组,则RS有(ij)个元组;每个元组的前m个属性是R的一个元组,后n个属性是S的一个元组。 说明:两个关系(集合)的乘运算,在集合论中也称为广义笛卡尔积。所以关系的乘
45、运算也称为广义笛卡尔积。 【例4】现有学生表、必修课程表,每个学生必须学习所有必修课程,要求形成选课表。可以利用关系乘运算实现。 学号 姓名 0406001 王晓立 0406002 张大卫 表表2-10 2-10 学生表学生表表表2-11 2-11 必修课程表必修课程表 课程号课程名 学分 C601 数据库 3 C602 操作系统 2C603数学 5 表表2-12 2-12 新关系新关系 学号姓名课程号课程名学分0406001王晓立C601数据库 30406001王晓立C602操作系统20406001王晓立C603 数学5 0406002张大卫C601 数据库 30406002张大卫C602操
46、作系统 20406002张大卫C603 数学5投影(投影(projectionprojection) 关系R的投影运算是从R中选择某些属性的所有值组成的新关系。换言之,投影运算的结果是一个表的垂直方向的子集。 关系R的投影运算记为:A(R)。其中,A为R的一组属性列。 投影的结果将消除重复的元组。 例5:在表2-5所示的关系RS中 列出所有职工的名单,可以通过投影运算实现; 姓名 张春来 马宏明 王红 李建新 姓名姓名(RS)(RS) 列出职工姓名及其任职状态,可以通过投影运算实现。姓名 状态张春来 1马宏明 1王红 1李建新 0王红 0姓名,状态姓名,状态(RS)(RS)姓名(RS)可记为2
47、(RS),姓名,状态(RS)可记为2,4(RS)。注意:姓名(RS)运算的结果将同名的两个“王红”去掉重复,只保留一个。选择(选择(selectionselection) 关系R的选择运算是从关系R中选择满足指定条件(用F表示)的元组构成的新关系。换言之,选择运算的结果是一个表的水平方向的子集。 关系R的选择运算记为:F(R)。其中,F是包括属性名的逻辑表达式,运算符有算术比较运算符:,和逻辑运算符:,(非、或、与)。 【例2-6】 在表2-11中求出学分大于等于3的课程信息。 表表2-13 2-13 学分学分33( RS) ( RS) 课程号课程名 学分 C601 数据库 3 C603数学
48、5 在表2-4中求所有在职男职工名单。 性 别性 别 = = 男男 状 态状 态=1=1( RS)( RS)工号 姓名 性别状态106001 张春来男1103026 马宏明男1性别性别=男男( RS) 连接(连接(joinjoin) 关系R与关系S的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新关系。记作: 其中:A为包含S中的属性的表达式 B为包含R中属性的表达式 通常为关系比较符。 等值连接(equal join) 为“”的连接运算称为等值连接。关系R和S的等值连接是从R和S的广义笛卡尔积RS中选取A与B等值的那些元组,形成的关系。S R AB 自然连接(nat
49、ural join) 关系R和S的自然连接是一种特殊的等值连接,它要求关系R和S中进行比较的分量必须是相同的属性组的一种连接,并且在结果中把重复的属性列去掉(只保留一个)。 自然连接记为: 一般的连接运算是从行的角度进行的。但自然连接还需要取消重复列,所以自然连接是同时从行和列的角度进行运算。 自然连接是构造新关系的有效方法,是关系代数中常用的一种运算,在关系数据库理论中起着重要作用。利用投影、选择和自然连接运算可以任意地分解和构造关系。 一般地,自然连接使用在R和S有公共属性的情况中。如果两个关系没有公共属性,那么它们的自然连接就转化为广义笛卡尔积。S R 【例2-7】设图书借阅信息如表2-
50、15所示,图书信息如表2-16 所示,求各读者借阅图书的信息。 读者编号图书编号借期还期2004060002F12.2452004-6-292002060328F23.552004-5-262004-12-222004160426G11.112004-10-212002060328G12.082004-8-262002060328G11.222004-9-012004160426G12.102004-9-142004-11-08表表2-15 2-15 借阅信息表借阅信息表borrowinf borrowinf 编号书名作者出版社出版日期定价F12.245计算机文化基础刘凌志青山2002.521
51、.80F33.33数据结构实用教程王云晓蓝天2002.522.00G22.12Visual Basic实用教程梁晓峰碧水2003.1028.00G11.22Java程序设计实用教程张大海碧水2004.720.80F23.55数据结构(C语言版) 马志刚青山2004.724.50G11.11C语言程序设计张大海蓝天2004.826.30G12.08C语言程序设计梁晓峰青山2004.1022.00G12.10C语言程序设计梁晓峰青山2004.1022.00表表2-16 2-16 图书信息表图书信息表books books 求各读者借阅图书的信息,可通过等值连接实现: borrowinf books
52、 图书编号 = 编号 结果为读者编号图书编号借期还期编号书名作者出版社出版日期定价2004060002F12.2452004-6-29F12.245计算机文化基础刘凌志青山2002.521.802002060328F23.552004-5-262004-12-22F33.33数据结构(C语言版)马志刚青山2004.728.002004160426G11.112004-10-21G22.12C语言程序设计张大海蓝天2004.82002060328G12.082004-8-26G11.22C语言程序设计梁晓峰青山2004.102002060328 G11.222004-9-01F23.55Java
53、程序设计实用教程张大海碧水2004.720.802004160426G12.102004-9-142004-11-08G11.11C语言程序设计梁晓峰青山2004.1022.00 除(除(dividedivide) 设关系R的属性可以分成互不相交的两组,用X、Y表示(XY为空集,XY为R的全部属性),则关系R可以表示为:R(X,Y)。 设R(X,Y)和S(Y,Z)是两个关系,其中R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算是一个新关系P(X)(记为RS),它的属性为属性组X,设S在Y上的投影y(S)有j个元组,RS由所有满足以下条件的元素构成:元组在X上的分量值x的
54、象集YX包含S在Y上投影的集合。 【例2-8】已知学生选课表R,要找出同时选修课号为C601、C605两门课程的学生的学号。指定的课程号和对应课程名构成的关系记为S,则该问题可以用RS表示。学号课程号0406001C6010406001C6020406001C6050406002C6020406002C6050406002C6030406003C6050406003C601选课表选课表 R R课程号课程名C601数据库C605软件工程S S学号 0406001 0406003 R RS S3、关系代数与数据查询 在关系代数中,关系代数运算经过有限次复合而成的式子称为关系代数表达式,它的运算结果
55、仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。 【例2-9】以图书借阅信息表(表2-15)、 图书信息表(表2-16)为例,完成下列任务: (1) 每本图书的编号和书名; (2) 每位读者的编号和所借图书的书名; (3) 2004年8月以前的图书未还情况读者编号和所借图书书名; (4) 编号为:2002060328的读者所借图书信息。每本图书的编号和书名; 解: R1=编号,书名(books)编号书名F12.245计算机文化基础F33.33数据结构实用教程G22.12Visual Basic实用教程G11.22Java程序设计实用教程F23.55数据结构(C语言版)G11.
56、11C语言程序设计G12.08C语言程序设计G12.10C语言程序设计R1R1(2) 每位读者的编号和所借图书的书名; 解: R2= 读者编号,书名 (borrowinf books) 图书编号=编号 读者编号书名2004060002计算机文化基础2002060328数据结构(C语言版)2004160426C语言程序设计2002060328C语言程序设计2002060328 Java程序设计实用教程2004160426C语言程序设计R2R2(3) 2004年8月以前的图书未还情况读者编号和所借图书书名;解: R3=读者编号,书名(借期2004-08-01还期=NULL(borrowinf bo
57、oks) ) 图书编号=编号读者编号书名2004060002计算机文化基础R3R3(4) 编号为2002060328的读者所借图书信息。 解: R4=读者编号=2002060328 (borrowinf books ) 图书编号 = 编号 读者编号图书编号借期还期书名作者出版社出版日期定价2002060328F23.552004-5-262004-12-22数据结构(C语言版)马志刚青山2004.728.002002060328G12.082004-8-26C语言程序设计梁晓峰青山2004.102002060328 G11.222004-9-01Java程序设计实用教程张大海碧水2004.72
58、0.80R4R44 4、关系模型的三类完整性约束 (1) 1) 实体完整性实体完整性 实体完整性规则: 若属性A是关系R的主属性,则A不能取空值。(2)(2)参照完整性规则参照完整性规则 外码和参照关系外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,称基本关系S为被参照关系。 例如:在授课系统的关系模型中: 课程(课号,课名,学分) 课号关系课程的主码 教师(工号,姓名,职称,课号) 课号是关系教师的外码 参考书(书号,书名,课号) 关系教师是参照关系,关系课程是被参照关系
59、。参照完整性规则参照完整性规则 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中的每个元组在F上的值必须满足:或者取空值(F的每个属性均为空值),或者等于S中某个元组的主码值。 例如,在授课系统的关系模型中,关系教师中的外码“课号”只能是下面两类值: (1) 空值。表示还未给该教师安排课。 (2) 非空值,但此值必须为被参照关系课程中某一门课程的“课号”。 注意:在实际应用中,外码不一定与对应的主码同名。 在关系数据库中,表与表之间的联系是通过公共属性实现的。这个公共属性往往是一个表的主码,同时是另一个表的外码。(3)(3)、 用户定义的完整性
60、用户定义的完整性 用户定义的完整性就是针对某一具体要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 例如,某个属性必须取惟一值;某些属性之间应满足一定的函数关系;某个属性的取值范围在0400之间等。关系模型应提供定义和检验这类完整性的机制,以便系统用统一的方法处理它们,而不需要由应用程序来承担这一功能。 所以,用户定义的完整性通常是定义属性取值的约束,即对属性的值域的约束。对属性的值域的约束也称为域完整性规则是指对关系中属性取值的正确性限制。包括数据类型、精度、取值范围、是否允许空值等。(4 4)、完整性规则检查)、完整性规则检查 为了维护数据库中数据的完整性,在对关系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专利许可合同:某企业使用某专利技术
- 2024年建筑劳务队安全生产协议
- 2024年度智能家居系统采购合同
- 2024年度城市基础设施建设与管理协议
- 2024证券投资基金基金合同范例
- 2024年国际石油天然气开采销售合同
- 2024医疗耗材生产原料采购与供应合同
- 2024年创新型企业孵化合作框架协议
- 保安员述职报告范文(7篇)
- 2024年度项目融资合同融资金额及还款方式
- 学前教育论文范文8000字(通用九篇)
- 小学数学北师大五年级上册数学好玩 图形中的规律-
- 《富饶的西沙群岛》说课稿(优秀3篇)
- 墓碑碑文范文(通用十四篇)
- 大象版一年级科学上册全册教案
- 5000字论文范文(推荐十篇)
- 教案评分标准
- 中药饮片处方点评表
- 《节能监察的概念及其作用》
- 综合布线系统竣工验收表
- 蔬菜会员卡策划营销推广方案多篇
评论
0/150
提交评论