数据库原理及应用_第1页
数据库原理及应用_第2页
数据库原理及应用_第3页
数据库原理及应用_第4页
数据库原理及应用_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理及应用

1

数据库系统概论

王珊萨师煊编著高等教育出版社教材

2教学参考书

段丁凡,苏斌

《数据库基础及应用》王珊,陈红《数据库系统原理教程》汤庸,叶小平等《数据库理论及应用基础》陶宏才《数据库原理及设计》李俊山

《数据库系统原理与设计》SQLServer2000的相关辅导书籍3课程目的

掌握数据库管理系统的基本原理作为系统管理员管理数据库系统设计开发数据库应用系统4课程内容

数据库相关的一些基本概念关系数据库和关系运算关系数据库标准语言SQL的使用关系数据库规范化理论数据库的恢复技术、并发控制、安全性和完整性数据库设计的基本概念和方法5学习要求理解数据库的基本概念了解数据管理技术的发展理解数据模型的基本概念掌握数据库系统的结构第一章 绪论

61.1数据库系统概述

数据库的地位数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。71.1.1四个基本概念

数据数据库数据库管理系统数据库系统8四个基本概念

数据(Data):

数据库中存储的基本对象,是描述事物的符号记录,如:数字、文字、图形、图像、声音等,数据与其语义是不可分的。如学生档案中的学生记录(李明,男,1972,江苏,计算机系,1990)9四个基本概念

数据库(Database,DB):

是长期储存在计算机内、有组织的、可共享的大量数据集合。其特征是:数据按一定的数据模型组织、描述和储存。可为各种用户共享。冗余度较小。数据独立性较高、易扩展。10四个基本概念

数据库管理系统(DatabaseManagementSystem,DBMS):是位于用户与操作系统之间的一层数据管理软件。DBMS的主要功能有:数据管理功能:数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能

提供数据库的用户接口Oracle,Sybase,Informix,SQLServer,MySQL,Access11四个基本概念

数据库系统(DatabaseSystem,DBS):是指在计算机系统中引入数据库后的系统“DB+DBMS+应用系统+数据库管理员(DataBaseAdministration,DBA)”在不引起混淆时常常把数据库系统简称为数据库。12数据库最终用户应用系统应用开发工具DBMS操作系统数据库管理员DBA应用程序员13应用系统应用开发工具DBMS操作系统硬件数据库系统环境示意图数据库在计算机系统中的地位数据库管理系统应用系统数据库用户、数据库管理员141.1.2数据库技术的产生与发展

人工管理阶段文件系统阶段数据库系统阶段15数据库技术的产生与发展

人工管理阶段(40年代中--50年代中)应用需求:科学计算硬件:无直接存取存储设备软件:无通用的操作系统处理方式:批处理16数据库技术的产生与发展——人工管理阶段

数据管理者:应用程序,数据不保存。数据面向的对象:某一应用程序。数据共享程度:无共享、冗余度极大。数据独立性:不独立,完全依赖于程序。数据结构化:无结构。数据控制能力:应用程序自己控制。17应用程序1数据集1应用程序2数据集2应用程序n数据集n...…...…人工管理阶段应用程序与数据的对应关系数据库技术的产生与发展——人工管理阶段

18数据库技术的产生与发展

文件系统阶段(50年代末--60年代中)应用需求:科学计算、数据处理硬件:出现磁盘、磁鼓等软件:操作系统、高级语言处理方式:批处理、共享的实时处理方式19数据管理者:文件系统,数据长期保存。数据面向的对象:某一应用程序。数据共享程度:共享性差、冗余度大。数据结构化:记录内有结构,整体无结构。数据独立性:逻辑结构改变须修改应用程序。数据控制能力:应用程序自己控制。数据库技术的产生与发展——文件系统阶段

20文件管理阶段应用程序与数据的对应关系应用程序1文件1应用程序2文件2应用程序n文件n存取方法...…...…数据库技术的产生与发展——文件系统阶段

21数据库技术的产生与发展

数据库系统阶段(60年代末以来)

应用需求:大规模管理硬件:出现大容量磁盘、磁盘阵列软件:数据库管理系统处理方式:联机实时处理、分布处理和批处理22数据库技术的产生与发展——数据库系统阶段

数据管理者:DBMS

数据面向的对象:整个系统

数据高度结构化:数据库与文件系统的根本区别数据的共享性高,冗余度低,易扩充数据的独立性高:物理独立性和逻辑独立性数据控制能力:由DBMS统一管理和控制23数据库管理阶段应用程序与数据的对应关系DBMS应用程序1应用程序2数据库…数据库技术的产生与发展——数据库系统阶段

241.1.3数据库系统的特点数据结构化数据的共享性高,冗余度低,易扩充数据独立性高数据由DBMS统一管理和控制25数据结构化数据库系统:实现整体数据的结构话,这是数据库系统与文件系统的本质区别。文件系统:文件由记录组成,文件内部有结构,文件之间无结构。数据库系统:数据之间整体有结构,是一个有机的整体。26数据结构化学生文件student的记录结构学生编号姓名性别年龄系家庭住址联系电话课程文件course的记录结构课程编号课程名称学时数教材名称学生选课文件sc的记录结构学生编号课程编号学期成绩27数据结构化学生基本记录学生编号姓名性别年龄系学生学籍记录家庭出身籍贯政治面貌奖惩情况记录日期奖惩条目日期学校学历名家庭成员记录姓名与本人关系详细情况学生选课记录学号课程号学期成绩课程记录课程号课程名称28数据库系统的特点——共享性高

数据共享性高,冗余度低,容易扩充数据库系统从整体角度来组织存储数据,数据不只是面向某一个应用,而是面向整个系统,因此具有很高的共享性。共享数据带来了低冗余性,也能避免数据之间的不相容性和不一致性。数据共享使得应用可以应需要而增加,容易扩充29数据库系统的特点——数据独立性高

物理独立性:是指用户的应用程序与存储在磁盘上的数据库中的数据时相互独立的。数据的物理存储由DBMS负责,应用程序不必了解,只需要处理数据的逻辑结构。这样当数据库的物理结构改变时,应用程序不用改变。逻辑独立性:直指用户的应用程序与数据库的逻辑结构是相互独立的,数据库的逻辑结构改变了,用户程序可以不予改变。数据与程序的独立,把数据的定义和存储从程序中分离出去,而存取数据的方法由DBMS提供,从而大大简化了应用程序的编制,减少了应用程序的维护和修改。30数据库系统的特点——数据由DBMS统一管理和控制

数据的安全性保护:保护数据不被不合法应用,不合法用户破坏。数据的完整性检查:包括检查数据的正确性,有效性和相容性。并发控制:多个进程并发存取或修改数据库时的控制。数据库恢复:计算机系统的硬件故障,软件故障,操作员的操作错误或者故意破坏导致数据库丢失或破坏时,由DBMS提供的功能让数据库恢复到正确状态。数据库中的数据是共享的,多个应用,多个用户可以同时存取数据库的数据,甚至同时存取统一数据,那么,DBMS必须具有以下的基本功能:311.2数据模型

数据模型就是对现实世界数据特征的抽象,是现实世界的模拟描述或表示。数据模型应满足的三个要求:比较真实地描述现实世界易为用户所理解易于在计算机上实现模型是所研究的系统、过程、事物或概念的一种表达形式,也可指根据实验、图样放大或缩小而制作的样品,一般用于展览或实验或铸造机器零件等用的模子。数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。321.2.1两类数据模型

按照建立数据模型的目的不同,可以分为两类:按照用户的观点建模按照计算机系统的观点建模网状模型层次模型关系模型

——概念模型(信息模型)逻辑模型

——逻辑模型和物理模型

——用于设计数据库

——用于数据库的逻辑实现和物理实现33两大类数据模型(续)客观对象的抽象过程---两步抽象现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。34两大类数据模型(续)DBMS支持的数据模型概念模型认识抽象信息世界机器世界现实世界中客观对象的抽象过程现实世界现实世界概念模型数据库设计人员完成逻辑模型物理模型由DBMS完成概念模型逻辑模型数据库设计人员完成351.2.2数据模型的组成要素

数据结构——系统的静态特性数据结构不仅要描述数据库组成对象,还要描述对象之间的联系。通常所说的层状、网状和关系模型,就是按照此处的数据结构来进行划分的。

数据操作——系统的动态特性是指对数据库中的各种对象运行执行的操作的集合,包括操作及有关的操作规则。数据库的操作包括查询和更新。

数据的完整性约束条件——一组完整性规则的集合完整性规则是数据模型中数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化,以保证数据的正确。36二、数据模型的组成要素

数据结构——系统的静态特性

数据操作——系统的动态特性

数据的完整性约束条件——一组完整性规则的集合同时数据模型还必须提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在全国英语等级考试中规定,要先考过四级才能考六级;四级要达到520分,才能参加口语考试。371.2.3概念模型(信息模型)

概念从用户的角度出发,将具体的现实世界抽象为一个具有某种信息结构的信息世界,这种信息结构只反映现实世界,与具体的DMBS无关。作用对信息世界进行建模,是现实世界到信息世界的第一层抽象,是用户和数据库设计者进行交流的语言。最后将概念模型转换为计算机上某一DBMS支持的数据模型,建立数据库。38信息世界中的基本概念

实体(Entity):客观存在并可相互区别的事物。属性(Attribute):实体所具有的某一特性。码(Key):能唯一标识实体的属性集。域(Domain):属性的取值范围。实体型(EntityType):实体名和属性集表达的同类实体。实体集(EntitySet):同型实体的集合。39信息世界中的基本概念

联系(Relationship):实体内部的联系和实体间的联系一对一联系(one-to-one,1:1)一对多联系(one-to-many,1:N)多对多联系(many-to-many,M:N)定义:设联系型R关联实体型A和B。若对应A中的每个实体,B中有且仅有一个实体与之关联,则称R是一对一联系型。若对应A中的每个实体,B中有n个实体(n≥0)与之关联,则称R是一对多联系型。若对应A中的每个实体,B中有n个实体(n≥0)与之关联,对应B中的每个实体,A中有m个实体(m≥

0)与之关联,则称R是多对多联系型。40返回41返回4243概念模型的一种表示方法

实体-联系方法(E-R方法),也称E-R模型。实体型:用矩形表示,矩形框内写明实体名;实体的属性用椭圆形表示,以无向边将其与相应的实体连接起来。

联系:联系本身用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n、m:n),联系的属性也要用无向边与该联系连接。44丈夫夫妻妻子11父亲父子孩子1n课程选修学生mn学生学号姓名性别年龄45丈夫夫妻妻子11父亲父子孩子1n课程选修学生mn46两个以上的实体型之间的联系单个实体型之间一对多的联系47(1)一个员工可以是多个部门的经理,而一个部门最多只能有一个经理,则该管理联系为1:N联系。(2)一个员工可以在多个部门工作,而一个部门有多个员工,则该工作联系为M:N联系。联系实例

N48联系实例——工厂物资管理的概念模型

实体及其属性图实体及其联系图49联系实例——工厂物资管理的概念模型

完整的实体联系图501.2.4最常用的数据模型

根据数据结构形式的不同,数据模型分为:层状模型网状模型关系模型面向对象的关系模型非关系模型511、层状模型

用树形结构表示各类实体以及实体之间的联系按树的定义层次模型有以下两个限制:有且仅有一个结点无双亲——根结点其它结点有且仅有一个双亲52特点

优点:简单,只需很少命令就可以操作数据库性能优于关系模型,不低于网状模型。提供了良好的完整性支持。

缺点:难以描述现实世界中的复杂联系。对插入和删除操作的限制多。查询子女结点必须通过双亲结点。532、网状模型

去掉了层次模型的两个限制:可以有一个以上的结点无双亲至少有一个结点有多于一个的双亲54特点

优点:

能更为直接地描述现实世界具有良好的性能,存取效率较高。

缺点:

结构比较复杂数据独立性差。553、关系模型

层状模型和网状模型在实际当中几乎不再使用,而几乎所有的DBMS都支持关系模型,即使不支持的,也加上了关系模型的接口。数据结构数据操作完整性约束56数据结构

逻辑结构是一张二维表,它由行和列组成。

学生登记表

2005004

王小明

22

社会学

2005

2006006

黄大鹏

20

商品学

20062006008

张文斌

21

法律学

2006

57常用术语

关系:描述数据本身、数据之间联系,一个关系对应一张二维表。列:有时也称“字段”、“属性”行:有时也称“元组”、“记录”关系模式:对关系的描述,一般表示为关系名(属性1,属性2,…,属性n),即R(A1,A2,…,An)。

如学生(学号,姓名,年龄,性别,系别,年级)。域:属性的取值范围。58常用术语

分量:元组中的一个属性值。主码:一个唯一识别关系实例的最小字段集合。

关系必须是规范化的,满足一定的规范条件。最基本的规范条件是关系的每一个分量必须是一个不可分的数据项。59数据操作与完整性约束

数据操作

关系数据操作是集合操作

关系模型将操作中的存取路径对用户屏蔽完整性约束

实体完整性、参照完整性、用户自定义完整性60特点

优点:

建立在严格的数学概念的基础上概念单一,实体和联系都用关系表示,数据操作结果为关系数据的存取路径对用户是透明的。

缺点:由于存取路径透明,使得数据存取的效率不如非关系模型614、面向对象的数据模型

用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间联系等的模型。对象:现实世界中实体的模型化,每一个对象都有它唯一的标识。

类:所有具有相同属性和方法集的对象构成一个对象类。任何一个对象都是某一对象类的一个实例。62第四讲数据库系统模式的概念复习回顾:

1.当前最流行的数据模型是什么?

2.关系的相关概念63第四讲数据库系统模式的概念一、从数据库管理系统角度看数据库系统内部的模式结构。三级模式结构:外模式、模式、内模式641.3.1数据库系统模式的概念

型(Type):对某一类数据的结构和属性的说明。值(Value):是型的一个具体赋值。例如:学生记录记录型:(学号,姓名,性别,系别,年龄,籍贯)该记录型的一个记录值:(900201,李明,男,计算机,22,江苏)65第四讲数据库系统模式的概念

(一)

模式(Schema):数据库中全体数据逻辑结构和特征的描述。(表结构)

模式只涉及型,不涉及具体的值。例如:学生选课数据库,型包括学生记录、课程记录和学生选课记录几个关系的模式,是相对稳定的,而里面的数据是动态的,2011年某一刻的数据和2012年某一刻的数据是不同的两个值。66模式(逻辑模式)说明:一个数据库只有一个模式。模式是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。数据库系统的三级模式结构

67数据库系统的三级模式结构

应用A应用B应用C应用D应用E内模式外模式1外模式3模式外模式2数据库外模式/模式映象内模式/模式映象学生(学号,姓名,性别)课程(课号,课名,学分)选课(学号,课号,成绩)68学生数据库模式结构学生(学号,姓名,性别,班级,系)课程(课号,课名,学分,任课教师,上课地点,上课时间)选课(学号,课号,成绩)学生数据库外模式结构计算机系学生(学号,姓名,性别,班级)数据库课程(课号,课名,学分,任课教师,上课地点,上课时间)数据库选课成绩(学号,课号,成绩)69(二)外模式(子模式或用户模式)数据库用户使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,一个数据库可以有多个外模式同一外模式可以为某一用户的多个应用系统所使用。外模式是保证数据库安全性的一个有力措施数据库系统的三级模式结构

外模式1外模式2应用1应用270(三)内模式(存储模式)数据物理结构和存储方式的描述,是数据在数据库内部的存储方式一个数据库只能有一个内模式数据库系统的三级模式结构

例如:学生记录表,按照不同方式存储时插入学生记录S3,年龄16岁,存储方式会有不同。S10

S5

S1

S6

S7

s9S1

S5

S6

S7

s9

s10S115

S616

S1016

S517

S717

s918堆存储方式学号升序存储方式按年龄升序存储方式S3S3S371导入:三级模式是对数据库中数据的三个抽象级别,两级映象是在DBMS内部实现这三个抽象层次的联系和转换。外模式/模式模式/内模式二、数据库的二级映象功能与数据独立性

广东同学粤语福建同学闽南语西藏同学藏语粤语翻译闽南语翻译藏语翻译普通话书库库房

管理员教材科微机登记处外模式模式内模式72

定义了外模式与模式之间的对应关系,每一个外模式都对应一个外模式/模式映象。保证了数据的逻辑独立性(一)外模式/模式映象

外模式1模式外模式2外模式n应用程序1应用程序2应用程序n模式DBA73

定义了数据全局逻辑结构与存储结构之间的对应关系,数据库中模式/内模式映象是唯一的。保证了数据的物理独立性(二)模式/内模式映象

模式内模式映像内模式DBA74应用1应用2应用3应用4外模式1外模式2外模式3模式映像内模式映像1映像2映像3外模式/模式映像数据库模式/内模式映像数据库系统的结构

75数据库系统的结构

小结在数据库的三级模式中,数据库模式即全局逻辑结构是数据库的中心和关键,它独立于数据库的其他模式,数据库的内模式依赖于它的全局逻辑结构,但是独立于数据库外模式,也独立于具体的存储设备。数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,独立于存储模式和存储设备。

通过DBMS的两级映像,保证了应用程序的稳定性和数据库中数据的物理独立性,从而便于进行数据库的独立管理和应用程序的开发和维护。76数据库系统的体系结构——从最终用户角度看待

单用户数据库系统DBDBDB整个数据库系统,包括应用程序、DBMS和数据,都装在同一台计算机上,由一个用户独占,不同用户之间不能共享数据。缺点:数据不能共享,存在大量的数据冗余77数据库系统的体系结构

主从式数据库系统指一个主机带多个终端的多用户结构。整个数据库系统,包括应用程序、DBMS和数据,都装在主机上,所有处理任务都由主机来完成,各个用户并发地存取数据库,数据可共享。缺点:当终端数增加到一定程度后,主机任务过于繁重,系统性能大幅度下降。78数据库系统的体系结构

分布式数据库系统——逻辑上是一个整体数据库,各个场地数据有相同部分,有不同部分。由分布式数据库管理系统统一管理控制,数据存储对用户透明。网络79DB数据库服务器客户机接口数据库系统的体系结构

客户/服务器(C/S)式数据库系统用一个专门的主机来执行DBMS功能,管理数据,称为数据库服务器,而其他结点计算机安装应用程序,用于访问服务器上的数据库,称为客户机。80客户端网络服务器DB请求结果结果先在数据库服务器上进行处理,再传回给客户机,可以减少网络上的数据量。

数据库更加开放。客户和服务器可以在多种不同的软硬件平台上运行,具有较强的可移植性。数据库系统的体系结构

81数据库系统的体系结构

三层C/S结构客户端DB应用服务器DBMS服务器82按照服务器在地理位置上的分布,分为集中的服务器结构和分布式的服务器结构。集中的服务器结构客户机1……客户机n服务器DB瓶颈客户机1……客户机nDB服务器1服务器2DB分布式的服务器结构分布式数据库系统的体系结构

83数据库系统的体系结构

浏览器/服务器(B/S)式数据库系统浏览器DB应用服务器DBMS服务器WEB服务器841.4数据库系统的组成

数据库系统:数据库+数据库管理系统(及其开发工具)+应用系统+数据库管理员一、硬件平台二、软件三、人员85数据库系统的组成人员

最终用户:具体操作应用系统,看不到数据库的模式结构。应用程序员:根据外模式编制应用程序,数据库的两级映像功能保证了他们不必了解具体的存储细节。系统分析员:负责系统需求分析和规范说明,从总体上设计系统,与最终用户和DBA一起,完成系统软硬件配置,参与各级模式的概要设计。系统分析员+数据库管理员+数据库设计人员+应用程序员+最终用户86数据库系统的组成人员

数据库设计员:负责数据库中数据的确定,数据库各级模式结构的设计。必须参加用户需求调查和系统分析,然后进行数据库设计。很多情况下,数据库设计员由数据库管理员担任。数据库管理员+系统分析员+数据库设计人员+应用程序员+最终用户87数据库系统的用户——数据库管理员

数据库管理员(DBA)的主要职责是负责全面管理和控制数据库系统,包括:决定数据库中的信息内容与结构决定数据库的存储结构和存取策略定义数据的安全性和完整性约束条件监控数据库的使用和运行(例如定义和实施备份和恢复策略)数据库的改进与重组重构与用户,应用程序员和系统分析员密切结合,概念模式、模式和内模式88小结

数据库的基本概念

数据、数据库、数据库管理系统、数据库系统数据管理技术的发展

人工管理、文件系统、数据库系统数据库系统的特点

数据的结构化、共享性、独立性、由DBMS统一管理89小结

数据模型的三要素概念模型的ER图表示

数据模型层次模型、网状模型、关系模型数据库系统的三级模式结构数据库的二级映象功能90第五讲关系定义、参照完整性(集合论角度)一、关系1.域域是一组有相同数据类型的值的集合。例如,自然数、整数、实数、长度小于25字节的字符串集合、{0,1}、大于等于0且小于10的正整数等。下面是三个集合表示的域。D2=性别集合={男,女},表示性别的集合。D1=学生集合={李明,刘涛},表示学生姓名的集合。D3=专业集合={计算机专业,数学专业,法律专业},表示专业的集合。91关系定义2.笛卡儿积给定一组域D1,D2,…,Dn(这些域中可以有相同的),则D1,D2,…,Dn的笛卡儿积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫作一个n元组,简称元组。笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。92关系定义例如上面给出的三个域D1,D2,D3的笛卡儿积为:D1×D2×D3={(李明,男,计算机专业),

(李明,男,数学专业),

(李明,男,法律专业),

(李明,女,计算机专业),

(李明,女,数学专业),

(李明,女,法律专业),

(刘涛,男,计算机专业),(刘涛,男,数学专业),

(刘涛,男,法律专业),

(刘涛,女,计算机专业),

(刘涛,女,数学专业),

(刘涛,女,法律专业)}举例:D1=姓合={李明,刘涛}D2=性别集合={男,女}D3=专业集合={计算机专业,数学专业,法律专业}93关系定义D1×D2×D3一共有2×2×3=12元组。这12个元组正好组成一张二维表姓名性别专业李明男计算机专业李明男数学专业李明男法律专业李明女计算机专业李明女数学专业李明女法律专业刘涛男计算机专业刘涛男数学专业刘涛男法律专业刘涛女计算机专业刘涛女数学专业刘涛女法律专业94关系定义3.关系给定一组域D1,D2,…,Dn,在这些域上笛卡儿积D1×D2×…×Dn上的一个子集,称为一个关系,表示为:R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。当n=1时,称该关系为单元(目)关系。当n=2时,称该关系为二元(目)关系。95关系是笛卡儿积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。在实际应用中,关系往往是从笛卡儿积中选取的有意义的子集。从上例中取出有实际意义的元组来构造关系,该关系的名字为STU,属性名就取域名,即姓名、性别和专业。则这个关系可以表示为:STU(姓名,性别,专业)96姓名性别专业李明男计算机专业刘涛女会计专业该关系可以包含两个元组,假设学生不重名,则姓名属性的每一个值都唯一地标识了一个元组,因此可以作为STU关系的主码。974.关系的三种类型

基本关系(通常又称为基本表或基表)、查询表和视图表。1、基本表是实际存在的表,它是实际存储数据的逻辑表示2、查询表是查询结果对应的表。3、视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

984.关系的性质(理解)在关系数据库中,要求关系中的每一个分量是不可再分的数据项,关系数据库中的关系应具有以下性质:⑴列是同质的,即每一列中的分量均是同类型的数据,即均来自同一个域。⑵不同的列可以出自同一个域,要给予不同的列不同的属性名。⑶列的顺序是无所谓的,即列的次序可以变换。⑷任意两个元组不能完全相同。⑸行的顺序是无所谓的,即行的次序可以变换。⑹每一分量必须是不可再分的数据项。99二、参照完整性1.关系间的引用2.外码3.参照完整性规则1001.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)主码主码学生关系引用了专业关系的主码“专业号”。学生关系中的“专业号”值必须是确实存在的专业的专业号

,即专业关系中有该专业的记录。外码101关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)102关系间的引用(续)例3学生实体及其内部的一对多联系

学生(学号,姓名,性别,专业号,年龄,班长)“学号”是主码,“班长”是外码,它引用了本关系的“学号”“班长”必须是确实存在的学生的学号

1032.外码(ForeignKey)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)104外码(续)[例1]:学生关系的“专业号与专业关系的主码“专业号”相对应“专业号”属性是学生关系的外码专业关系是被参照关系,学生关系为参照关系

105外码(续)[例2]:选修关系的“学号”与学生关系的主码“学号”相对应选修关系的“课程号”与课程关系的主码“课程号”相对应“学号”和“课程号”是选修关系的外码学生关系和课程关系均为被参照关系选修关系为参照关系106外码(续)[例3]:“班长”与本身的主码“学号”相对应“班长”是外码学生关系既是参照关系也是被参照关系

107外码(续)关系R和S不一定是不同的关系目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别1083.参照完整性规则

参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值109参照完整性规则(续)[例1]:学生关系中每个元组的“专业号”属性只取两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业110参照完整性规则(续)〔例2〕:选修(学号,课程号,成绩)“学号”和“课程号”可能的取值:(1)选修关系中的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值111参照完整性规则(续)例3〕:学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值112参照完整性规则根据参照完整性规则,应该对数据库的修改加以限制,这些限制包括

*插入约束:禁止在从表中插入包含主表中不存在的关键字的数据行*删除约束:禁止删除在从表中有对应记录的主表记录*更新约束:禁止更新导致从表中的相应值孤立的主表中的外部关键字值学号姓名09001张三09002李四09003王五学号课程号成绩09001001900900100391090020059909002001970900400298学生信息(主)选课成绩(从)113参照完整性学号姓名09001张三09002李四09003王五学号课程号成绩09001001900900100391090020059909002001970900400298114用户定义的完整性针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能115用户定义的完整性(续)例:

课程(课程号,课程名,学分)“课程号”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}116补充:第六讲数据库表的设计建表的基本步骤:确定表中有哪些列确定每列的数据类型给表列添加各种约束创建各表之间的关系SQLServer中的数据类型整型数据:int

smallint

浮点数据:floatnumeric……字符数据固定长度:char(6)可变长度:varchar(10)unicode编码:nchar(10)……布尔数据(真/假)

bit:1/0货币数据money日期数据datetime117表的设计1.1关系数据库基础目录前一页后一页结束1.数值数据(1)使用整数数据的精确数字数据类型:bigint、int、smallint及tinyint,如表3-1所示。数据类型取值范围存储空间bigint-2^63(-9,223,372,036,854,775,808)~2^63-1(9,223,372,036,854,775,807)8个字节Int-2^31(-2,147,483,648)~2^31-1(2,147,483,647)4个字节smallint-2^15(-32,768)~2^15-1(32,767)2个字节tinyint0~2551个字节表3-1使用整数数据的精确数字数据类型118表的设计1.1关系数据库基础目录前一页后一页结束(2)带固定精度和小数位数的数值数据类型:decimal和numeric,如表3-2所示。语法形式取值范围精度范围存储空间decimal[(p[,s])]及numeric[(p[,s])]使用最大精度时,有效值从-10^38+1~10^38–1p(精度):最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度是从1到最大精度38之间的值。默认精度为18。s(小数位数):小数点右边可以存储的十进制数字的最大位数,默认的小数位数为0;取值为0<=s<=p。1-95个字节10-199个字节20-2813个字节29-3817个字节119表的设计1.1关系数据库基础目录前一页后一页结束(3)近似数字近似数字用于表示浮点数值数据的大致数值数据类型,如表3-5所示。数据类型取值范围尾数精度存储空间float-1.79E+308~1.79E+30874个字节real-3.40E+38~3.40E+38158个字节表3-5近似数字120表的设计1.1关系数据库基础目录前一页后一页结束2.(1)非Unicode字符串类型字符串类型以字符的形式存储数据,字符可以是SQLServer使用的字符集中任何一个有效字符,如表3-8所示。数据类型取值范围char[(n)]固定长度,非Unicode字符数据,长度为n个字节。1≤n≤8000,存储大小是n个字节。varchar[(n|max)]可变长度,非Unicode字符数据。1≤n≤8000。存储大小是输入数据的实际长度加2个字节。所输入数据的长度可以为0个字符。text长度可变的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。表3-8字符串类型121表的设计1.1关系数据库基础目录前一页后一页结束2.字符串(2)Unicode字符串如表3-4所示。数据类型取值范围nchar[(n)]n个字符的固定长度的Unicode字符数据。1≤n≤4000。存储大小为2n字节。nvarchar[(n|max)]包含n个字符的可变长度Unicode字符数据。1≤n≤4000。字节的存储大小是所输入字符个数的两倍+2个字节。所输入的数据字符长度可以为零ntext可变长度的Unicode数据,最大长度为2^30-1(1,073,741,823)个字符。存储大小是所输入字符个数的两倍(以字节为单位)。表3-4Unicode字符串122表的设计1.1关系数据库基础目录前一页后一页结束3.日期和时间型

SQLServer2005提供了datetime和smalldatetime,用于表示某天的日期和时间的数据类型,如表3-7所示。数据类型取值范围精确度datetime1753年1月1日~9999年12月31日3.33毫秒smalldatetime1900年1月1日~2079年6月6日1分钟表3-7日期和时间型123表的设计1.1关系数据库基础目录前一页后一页结束4.货币或货币值的数据类型:money和smallmoney,如表3-3所示。数据类型取值范围存储空间money-922,337,203,685,477.5808~922,337,203,685,477.58078个字节smallmoney

-214,748.3648~214,748.36474个字节表3-3货币或货币值的数据类型5.可以取值为1、0或NULL的整数数据类型:bit124表的设计1.1关系数据库基础目录前一页后一页结束6.二进制字符串二进制字符串如表3-6所示。数据类型取值范围存储空间binary[(n)]长度为n字节的固定长度二进制数据,其中n是从1~8,000的值。n个字节varbinary[(n)]可变长度二进制数据。n可以取从1~8,000的值。所输入数据的实际长度+2个字节。image长度可变的二进制数据,从0~2^31-1(2,147,483,647)个字节。表3-6二进制字符串125表的设计1.1关系数据库基础目录前一页后一页结束7.其他数据类型(1)cursor。这是变量或存储过程OUTPUT参数的一种数据类型,这些参数包含对游标的引用。(2)timestamp。公开数据库中自动生成的唯一二进制数字的数据类型。(3)sql_variant。用于存储SQLServer2005支持的各种数据类型(不包括text、ntext、image、timestamp和sql_variant)的值。(4)uniqueidentifier。16字节全局唯一标识符代码(简称GUID)。(5)table。这是一种特殊的数据类型,用于存储结果集以进行后续处理。主要用于临时存储一组行,这些行是作为表值函数的结果集返回的。(6)xml。该数据类型使用户能够在SQLServer数据库中存储XML文档和片段。126创建表建表的语法CREATETABLE

表名

(

字段1数据类型列的特征,字段2数据类型列的特征,

...)列的特征:包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。127回顾SQLServer的约束约束的目的:确保表中数据的完整型常用的约束类型:主键约束(PrimaryKeyConstraint):要求主键列数据唯一,并且不允许为空唯一约束(UniqueConstraint):要求该列唯一,允许为空,但只能出现一个空值。检查约束(CheckConstraint):某列取值范围限制、格式限制等,如有关年龄的约束默认约束(DefaultConstraint):某列的默认值,如我们的男性学员较多,性别默认为“男”外键约束(ForeignKeyConstraint):用于两表间建立关系,需要指定引用主表的那列1282.E-R图转换为关系模型的原则1、一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。

2、一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。3、一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。12

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论