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

下载本文档

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

文档简介

1,数据库原理及应用,2,数据库系统概论,王珊 萨师煊 编著 高等教育出版社,3,段丁凡,苏斌 数据库基础及应用 王珊,陈红数据库系统原理教程 汤庸,叶小平等数据库理论及应用基础 陶宏才 数据库原理及设计 李俊山 数据库系统原理与设计 SQL Server 2000的相关辅导书籍,4,掌握数据库管理系统的基本原理 作为系统管理员管理数据库系统 设计开发数据库应用系统,5,数据库相关的一些基本概念 关系数据库和关系运算 关系数据库标准语言SQL的使用 关系数据库规范化理论 数据库的恢复技术、并发控制、安全性和完整性 数据库设计的基本概念和方法,6,学习要求 理解数据库的基本概念 了解数据管理技术的发展 理解数据模型的基本概念 掌握数据库系统的结构,7,数据库的地位 数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。 数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。 数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。,8,数据 数据库 数据库管理系统 数据库系统,9,数据(Data): 数据库中存储的基本对象,是描述事物的符号记录,如:数字、文字、图形、图像、声音等,数据与其语义是不可分的。 如学生档案中的学生记录(李明,男,1972,江苏,计算机系,1990),10,数据库(Database,DB) : 是长期储存在计算机内、有组织的、可共享的大量数据集合。其特征是: 数据按一定的数据模型组织、描述和储存。 可为各种用户共享。 冗余度较小。 数据独立性较高、易扩展。,11,数据库管理系统(Database Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。DBMS的主要功能有: 数据管理功能:数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能 提供数据库的用户接口,Oracle , Sybase ,Informix,SQL Server, MySQL,Access,12,数据库系统(Database System,DBS):是指在计算机系统中引入数据库后的系统 “DB+DBMS+应用系统+数据库管理员(DataBase Administration, DBA )”,在不引起混淆时常常把数据库系统简称为数据库。,13,14,数据库系统环境示意图,数据库在计算机系统中的地位,15,人工管理阶段,文件系统阶段,数据库系统阶段,16,人工管理阶段(40年代中-50年代中),应用需求:科学计算 硬 件:无直接存取存储设备 软 件:无通用的操作系统 处理方式:批处理,17,数据库技术的产生与发展人工管理阶段,数据管理者:应用程序,数据不保存。 数据面向的对象:某一应用程序。 数据共享程度:无共享、冗余度极大。 数据独立性:不独立,完全依赖于程序。 数据结构化:无结构。 数据控制能力:应用程序自己控制。,18,人工管理阶段应用程序与数据的对应关系,数据库技术的产生与发展人工管理阶段,19,文件系统阶段(50年代末-60年代中),应用需求:科学计算、数据处理 硬 件:出现磁盘、磁鼓等 软 件:操作系统、高级语言 处理方式:批处理、共享的实时处理方式,20,数据管理者:文件系统,数据长期保存。 数据面向的对象:某一应用程序。 数据共享程度:共享性差、冗余度大。 数据结构化:记录内有结构,整体无结构。 数据独立性:逻辑结构改变须修改应用程序。 数据控制能力:应用程序自己控制。,21,文件管理阶段应用程序与数据的对应关系,22,数据库系统阶段(60年代末以来),应用需求:大规模管理 硬 件:出现大容量磁盘、磁盘阵列 软 件:数据库管理系统 处理方式:联机实时处理、分布处理和批处理,23,数据管理者:DBMS 数据面向的对象:整个系统 数据高度结构化:数据库与文件系统的根本区别 数据的共享性高,冗余度低,易扩充 数据的独立性高:物理独立性和逻辑独立性 数据控制能力:由DBMS统一管理和控制,24,数据库管理阶段应用程序与数据的对应关系,25,数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制,26,数据库系统:实现整体数据的结构话,这是数据库系统与文件系统的本质区别。 文件系统:文件由记录组成,文件内部有结构,文件之间无结构。 数据库系统:数据之间整体有结构,是一个有机的整体。,27,学生文件student的记录结构,课程文件course的记录结构,学生选课文件sc的记录结构,28,学生基本记录,学生学籍记录,奖惩情况记录,家庭成员记录,学生选课记录,课程记录,29,数据共享性高,冗余度低,容易扩充 数据库系统从整体角度来组织存储数据,数据不只是面向某一个应用,而是面向整个系统,因此具有很高的共享性。 共享数据带来了低冗余性,也能避免数据之间的不相容性和不一致性。 数据共享使得应用可以应需要而增加,容易扩充,30,物理独立性:是指用户的应用程序与存储在磁盘上的数据库中的数据时相互独立的。数据的物理存储由DBMS负责,应用程序不必了解,只需要处理数据的逻辑结构。这样当数据库的物理结构改变时,应用程序不用改变。 逻辑独立性:直指用户的应用程序与数据库的逻辑结构是相互独立的,数据库的逻辑结构改变了,用户程序可以不予改变。 数据与程序的独立,把数据的定义和存储从程序中分离出去,而存取数据的方法由DBMS提供,从而大大简化了应用程序的编制,减少了应用程序的维护和修改。,31,数据库系统的特点数据由DBMS统一管理和控制,数据的安全性保护:保护数据不被不合法应用,不合法用户破坏。 数据的完整性检查:包括检查数据的正确性,有效性和相容性。 并发控制:多个进程并发存取或修改数据库时的控制。 数据库恢复:计算机系统的硬件故障,软件故障,操作员的操作错误或者故意破坏导致数据库丢失或破坏时,由DBMS提供的功能让数据库恢复到正确状态。,数据库中的数据是共享的,多个应用,多个用户可以同时存取数据库的数据,甚至同时存取统一数据,那么,DBMS必须具有以下的基本功能:,32,数据模型就是对现实世界数据特征的抽象,是现实世界的模拟描述或表示。数据模型应满足的三个要求:,比较真实地描述现实世界 易为用户所理解 易于在计算机上实现,模型是所研究的系统、过程、事物或概念的一种表达形式,也可指根据实验、图样放大或缩小而制作的样品,一般用于展览或实验或铸造机器零件等用的模子。,数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。,33,按照建立数据模型的目的不同,可以分为两类:,按照用户的观点建模,按照计算机系统的观点建模,网状模型 层次模型 关系模型,概念模型(信息模型),逻辑模型和物理模型,用于设计数据库,用于数据库的逻辑实现和物理实现,34,两大类数据模型 (续),客观对象的抽象过程-两步抽象 现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。,35,两大类数据模型 (续),DBMS支持的数据模型,概念模型,认识 抽象,信息世界,机器世界,现实世界中客观对象的抽象过程,现实世界,36,数据结构系统的静态特性 数据结构不仅要描述数据库组成对象,还要描述对象之间的联系。通常所说的层状、网状和关系模型,就是按照此处的数据结构来进行划分的。,数据操作系统的动态特性 是指对数据库中的各种对象运行执行的操作的集合,包括操作及有关的操作规则。数据库的操作包括查询和更新。,数据的完整性约束条件一组完整性规则的集合 完整性规则是数据模型中数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化,以保证数据的正确。,37,数据结构系统的静态特性,数据操作系统的动态特性,数据的完整性约束条件一组完整性规则的集合 同时数据模型还必须提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。,例如,在全国英语等级考试中规定,要先考过四级才能考六级;四级要达到520分,才能参加口语考试。,38,概念 从用户的角度出发,将具体的现实世界抽象为一个具有某种信息结构的信息世界,这种信息结构只反映现实世界,与具体的DMBS无关。,作用 对信息世界进行建模,是现实世界到信息世界的第一层抽象,是用户和数据库设计者进行交流的语言。最后将概念模型转换为计算机上某一DBMS支持的数据模型,建立数据库。,39,实体(Entity):客观存在并可相互区别的事物。 属性(Attribute):实体所具有的某一特性。 码(Key):能唯一标识实体的属性集。 域(Domain):属性的取值范围。 实体型(Entity Type):实体名和属性集表达的同类实体。 实体集(Entity Set):同型实体的集合。,40,信息世界中的基本概念,联系(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个实体(n0)与之关联,则称R是一对多联系型。若对应A中的每个实体,B中有n个实体(n 0)与之关联,对应B中的每个实体,A中有m个实体(m 0)与之关联,则称R是多对多联系型。,41,返回,42,返回,43,44,实体联系方法(E-R方法),也称E-R模型。,实体型:用矩形表示,矩形框内写明实体名;实体的属性用椭圆形表示,以无向边将其与相应的实体连接起来。,联系:联系本身用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n、m:n),联系的属性也要用无向边与该联系连接 。,45,46,丈夫,夫妻,妻子,1,1,父亲,父子,孩子,1,n,课程,选修,学生,m,n,47,两个以上的实体型之间的联系,单个实体型之间一对多的联系,48,(1)一个员工可以是多个部门的经理,而一个部门最多只能有一个经理,则该管理联系为1:N联系。 (2)一个员工可以在多个部门工作,而一个部门有多个员工,则该工作联系为M:N联系。,联系实例,N,49,联系实例工厂物资管理的概念模型,实体及其属性图,实体及其联系图,50,联系实例工厂物资管理的概念模型,完整的实体联系图,51,根据数据结构形式的不同,数据模型分为:,层状模型 网状模型 关系模型 面向对象的关系模型,52,用树形结构表示各类实体以及实体之间的联系,按树的定义层次模型有以下两个限制: 有且仅有一个结点无双亲根结点 其它结点有且仅有一个双亲,53,优点: 简单,只需很少命令就可以操作数据库 性能优于关系模型,不低于网状模型。 提供了良好的完整性支持。,缺点: 难以描述现实世界中的复杂联系。 对插入和删除操作的限制多。 查询子女结点必须通过双亲结点。,54,去掉了层次模型的两个限制: 可以有一个以上的结点无双亲 至少有一个结点有多于一个的双亲,55,优点: 能更为直接地描述现实世界 具有良好的性能,存取效率较高。,缺点: 结构比较复杂 数据独立性差。,56,层状模型和网状模型在实际当中几乎不再使用,而几乎所有的DBMS都支持关系模型,即使不支持的,也加上了关系模型的接口。,数据结构 数据操作 完整性约束,57,逻辑结构是一张二维表,它由行和列组成。,张文斌,21,女,法律学,2006,58,关系:描述数据本身、数据之间联系,一个关系对应一张二维表。 列:有时也称“字段” 、“属性” 行:有时也称“元组” 、 “记录” 关系模式:对关系的描述,一般表示为 关系名(属性1,属性2,属性n),即R(A1, A2, , An)。 如学生(学号,姓名,年龄,性别,系别,年级)。 域:属性的取值范围。,59,分量:元组中的一个属性值。 主码:一个唯一识别关系实例的最小字段集合。 关系必须是规范化的,满足一定的规范条件。最基本的规范条件是关系的每一个分量必须是一个不可分的数据项。,60,数据操作 关系数据操作是集合操作 关系模型将操作中的存取路径对用户屏蔽,完整性约束 实体完整性、参照完整性、用户自定义完整性,61,优点: 建立在严格的数学概念的基础上 概念单一,实体和联系都用关系表示,数据操作结果为关系 数据的存取路径对用户是透明的。,缺点: 由于存取路径透明,使得数据存取的效率不如非关系模型,62,用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间联系等的模型。,对象:现实世界中实体的模型化,每一个对象都有它唯一的标识。 类:所有具有相同属性和方法集的对象构成一个对象类。任何一个对象都是某一对象类的一个实例。,63,复习回顾: 1.当前最流行的数据模型是什么? 2.关系的相关概念,64,一、从数据库管理系统角度看数据库系统内部的模式结构。 三级模式结构:外模式、模式 、内模式,65,型(Type):对某一类数据的结构和属性的说明。 值(Value):是型的一个具体赋值。 例如:学生记录 记录型:(学号,姓名,性别,系别,年龄,籍贯) 该记录型的一个记录值: (900201,李明,男,计算机,22,江苏),66,(一) 模式(Schema):数据库中全体数据逻辑结构和特征的描述。(表结构) 模式只涉及型,不涉及具体的值。,例如:学生选课数据库,型包括学生记录、课程记录和学生选课记录几个关系的模式,是相对稳定的,而里面的数据是动态的,2011年某一刻的数据和2012年某一刻的数据是不同的两个值。,67,模式(逻辑模式)说明: 一个数据库只有一个模式。 模式是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。,数据库系统的三级模式结构,68,外模式/模式映象,内模式/模式映象,学生(学号,姓名,性别) 课程(课号,课名,学分) 选课(学号,课号,成绩),69,学生数据库模式结构,学生(学号,姓名,性别,班级,系) 课程(课号,课名,学分,任课教师,上课地点,上课时间) 选课(学号,课号,成绩),学生数据库外模式结构,计算机系学生(学号,姓名,性别,班级) 数据库课程(课号,课名,学分,任课教师,上课地点,上课时间) 数据库选课成绩(学号,课号,成绩),70,(二)外模式(子模式或用户模式) 数据库用户使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集,一个数据库可以有多个外模式 同一外模式可以为某一用户的多个应用系统所使用。 外模式是保证数据库安全性的一个有力措施,数据库系统的三级模式结构,71,(三)内模式(存储模式) 数据物理结构和存储方式的描述,是数据在数据库内部的存储方式 一个数据库只能有一个内模式,数据库系统的三级模式结构,72,导入:三级模式是对数据库中数据的三个抽象级别,两级映象是在DBMS内部实现这三个抽象层次的联系和转换。 外模式/模式 模式/内模式,外模式,模式,内模式,73,定义了外模式与模式之间的对应关系,每一个外模式都对应一个外模式模式映象。 保证了数据的逻辑独立性,(一)外模式模式映象,74,定义了数据全局逻辑结构与存储结构之间的对应关系,数据库中模式内模式映象是唯一的。 保证了数据的物理独立性,(二)模式内模式映象,75,数据库系统的结构,76,数据库系统的结构,小结,在数据库的三级模式中,数据库模式即全局逻辑结构是数据库的中心和关键,它独立于数据库的其他模式, 数据库的内模式依赖于它的全局逻辑结构,但是独立于数据库外模式,也独立于具体的存储设备。 数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,独立于存储模式和存储设备。 通过DBMS的两级映像,保证了应用程序的稳定性和数据库中数据的物理独立性,从而便于进行数据库的独立管理和应用程序的开发和维护。,77,单用户数据库系统,整个数据库系统,包括应用程序、DBMS和数据,都装在同一台计算机上,由一个用户独占,不同用户之间不能共享数据。 缺点:数据不能共享,存在大量的数据冗余,78,主从式数据库系统,指一个主机带多个终端的多用户结构。整个数据库系统,包括应用程序、DBMS和数据,都装在主机上,所有处理任务都由主机来完成,各个用户并发地存取数据库,数据可共享。,缺点:当终端数增加到一定程度后,主机任务过于繁重,系统性能大幅度下降。,79,分布式数据库系统逻辑上是一个整体数据库,各个场地数据有相同部分,有不同部分。由分布式数据库管理系统统一管理控制,数据存储对用户透明。,80,客户/服务器(C/S)式数据库系统,用一个专门的主机来执行DBMS功能,管理数据,称为数据库服务器,而其他结点计算机安装应用程序,用于访问服务器上的数据库,称为客户机。,81,客户端,网 络,服务器,请求,结果,结果先在数据库服务器上进行处理,再传回给客户机,可以减少网络上的数据量。,数据库更加开放。客户和服务器可以在多种不同的软硬件平台上运行,具有较强的可移植性。,82,三层C/S结构,83,按照服务器在地理位置上的分布,分为集中的服务器结构和分布式的服务器结构。,集中的服务器结构,瓶颈,分布式的服务器结构,分布式,84,浏览器/服务器(B/S)式数据库系统,85,数据库系统:数据库+数据库管理系统(及其开发工具)+应用系统+数据库管理员,一、硬件平台,二、软件,三、人员,86,最终用户:具体操作应用系统,看不到数据库的模式结构。 应用程序员:根据外模式编制应用程序,数据库的两级映像功能保证了他们不必了解具体的存储细节。 系统分析员:负责系统需求分析和规范说明,从总体上设计系统,与最终用户和DBA一起,完成系统软硬件配置,参与各级模式的概要设计。,系统分析员+数据库管理员+数据库设计人员+应用程序员+最终用户,87,数据库设计员:负责数据库中数据的确定,数据库各级模式结构的设计。必须参加用户需求调查和系统分析,然后进行数据库设计。很多情况下,数据库设计员由数据库管理员担任。,数据库管理员+系统分析员+数据库设计人员+应用程序员+最终用户,88,数据库管理员(DBA)的主要职责是负责全面管理和控制数据库系统,包括:,决定数据库中的信息内容与结构 决定数据库的存储结构和存取策略 定义数据的安全性和完整性约束条件 监控数据库的使用和运行(例如定义和实施备份和恢复策略) 数据库的改进与重组重构,与用户,应用程序员和系统分析员密切结合,概念模式、模式和内模式,89,小结,数据库的基本概念 数据、数据库、数据库管理系统、数据库系统 数据管理技术的发展 人工管理、文件系统、数据库系统 数据库系统的特点 数据的结构化、共享性、独立性、由DBMS统一管理,90,数据模型的三要素 概念模型的ER图表示 数据模型 层次模型、网状模型、关系模型 数据库系统的三级模式结构 数据库的二级映象功能,91,第五讲 关系定义、参照完整性(集合论角度),一、关系 1. 域 域是一组有相同数据类型的值的集合。 例如, 自然数、整数、实数、长度小于25字节的字符串集合、0,1、大于等于0且小于10的正整数等。 下面是三个集合表示的域。 D2=性别集合=男,女,表示性别的集合。 D1=学生集合=李明,刘涛,表示学生姓名的集合。 D3=专业集合=计算机专业,数学专业,法律专业,表示专业的集合。,92,关系定义,2.笛卡儿积 给定一组域D1,D2,,Dn(这些域中可以有相同的),则D1,D2,Dn的笛卡儿积为:DDDn=(d1,d2,,dn)|diDi,i=1,2,n 其中每一个元素(d1,d2,dn)叫作一个n元组,简称元组。 笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,93,关系定义,例如上面给出的三个域1,2,3的笛卡儿积为:D1DD= (李明,男,计算机专业), (李明,男,数学专业), (李明,男,法律专业), (李明,女,计算机专业), (李明,女,数学专业), (李明,女,法律专业), (刘涛,男,计算机专业), (刘涛,男,数学专业), (刘涛,男,法律专业), (刘涛,女,计算机专业), (刘涛,女,数学专业), (刘涛,女,法律专业) ,举例:D1 =姓合=李明,刘涛 D =性别集合=男,女 D=专业集合=计算机专业,数学专业,法律专业,94,关系定义,D1DD一共有223=12元组。这12个元组正好组成一张二维表,95,关系定义,3. 关系 给定一组域D1,D2,,Dn,在这些域上笛卡儿积 D1DDn上的一个子集,称为一个关系,表示为:R(D1,D2,,Dn)这里R表示关系的名字,n是关系的目或度。 关系中的每个元素是关系中的元组,通常用t表示。 当n=1时,称该关系为单元(目)关系。当n=2时,称该关系为二元(目)关系。,96,关系是笛卡儿积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。 在实际应用中,关系往往是从笛卡儿积中选取的有意义的子集。从上例中取出有实际意义的元组来构造关系,该关系的名字为STU,属性名就取域名,即姓名、性别和专业。则这个关系可以表示为:STU(姓名,性别,专业),97,该关系可以包含两个元组,假设学生不重名,则姓名属性的每一个值都唯一地标识了一个元组,因此可以作为STU关系的主码。,98,4关系的三种类型,基本关系(通常又称为基本表或基表)、查询表和视图表。 1、基本表是实际存在的表,它是实际存储数据的逻辑表示 2、查询表是查询结果对应的表。 3、视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,99,4关系的性质(理解),在关系数据库中,要求关系中的每一个分量是不可再分的数据项, 关系数据库中的关系应具有以下性质: 列是同质的,即每一列中的分量均是同类型的数据,即均来自同一个域。 不同的列可以出自同一个域,要给予不同的列不同的属性名。 列的顺序是无所谓的,即列的次序可以变换。 任意两个元组不能完全相同。 行的顺序是无所谓的,即行的次序可以变换。 每一分量必须是不可再分的数据项。,100,二、参照完整性,1. 关系间的引用 2. 外码 3. 参照完整性规则,101,1. 关系间的引用,在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。 例1 学生实体、专业实体 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名),主码,主码,学生关系引用了专业关系的主码“专业号”。 学生关系中的“专业号”值必须是确实存在的专业的专业号 ,即专业 关系中有该专业的记录。,外码,102,关系间的引用(续),例2 学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),103,关系间的引用(续),例3 学生实体及其内部的一对多联系 学生(学号,姓名,性别,专业号,年龄,班长),“学号”是主码,“班长”是外码,它引用了本关系的“学号” “班长” 必须是确实存在的学生的学号,104,2外码(Foreign Key),设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码 基本关系R称为参照关系(Referencing Relation) 基本关系S称为被参照关系(Referenced Relation) 或目标关系(Target Relation),105,外码(续),例1:学生关系的“专业号与专业关系的主码“专业号”相对应 “专业号”属性是学生关系的外码 专业关系是被参照关系,学生关系为参照关系,106,外码(续),例2: 选修关系的“学号” 与学生关系的主码“学号”相对应 选修关系的“课程号”与课程关系的主码“课程号”相对应 “学号”和“课程号”是选修关系的外码 学生关系和课程关系均为被参照关系 选修关系为参照关系,107,外码(续),例3:“班长”与本身的主码“学号”相对应 “班长”是外码 学生关系既是参照关系也是被参照关系,108,外码(续),关系R和S不一定是不同的关系 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别,109,3. 参照完整性规则,参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值,110,参照完整性规则(续),例1: 学生关系中每个元组的“专业号”属性只取两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业,111,参照完整性规则(续),例2 : 选修(学号,课程号,成绩) “学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值,112,参照完整性规则(续),例3: 学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长 (2)非空值,该值必须是本关系中某个元组的学号值,113,参照完整性规则,根据参照完整性规则,应该对数据库的修改加以限制,这些限制包括 *插入约束:禁止在从表中插入包含主表中不存在的关键字的数据行 *删除约束:禁止删除在从表中有对应记录的主表记录 *更新约束:禁止更新导致从表中的相应值孤立的主表中的外部关键字值,学生信息(主) 选课成绩(从),114,参照完整性,115,用户定义的完整性,针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能,116,用户定义的完整性(续),例: 课程(课程号,课程名,学分) “课程号”属性必须取唯一值 非主属性“课程名”也不能取空值 “学分”属性只能取值1,2,3,4,117,补充:第六讲 数据库表的设计,建表的基本步骤: 确定表中有哪些列 确定每列的数据类型 给表列添加各种约束 创建各表之间的关系 SQL Server中的数据类型,整型数据:int smallint 浮点数据:float numeric ,字符数据 固定长度:char(6) 可变长度: varchar(10) unicode编码:nchar(10) ,布尔数据(真/假) bit: 1/ 0,货币数据 money,日期数据 datetime,118,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,1数值数据 (1)使用整数数据的精确数字数据类型:bigint、int、smallint及tinyint,如表3-1所示。,表3-1 使用整数数据的精确数字数据类型,119,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,(2)带固定精度和小数位数的数值数据类型:decimal和numeric,如表3-2所示。,120,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,(3)近似数字,近似数字用于表示浮点数值数据的大致数值数据类型,如表3-5所示。,表3-5 近似数字,121,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,2(1) 非Unicode 字符串类型,字符串类型以字符的形式存储数据,字符可以是SQL Server使用的字符集中任何一个有效字符,如表3-8所示。,表3-8 字符串类型,122,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,2字符串,(2)Unicode 字符串如表3-4所示。,表3-4 Unicode字符串,123,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,3日期和时间型,SQL Server 2005提供了datetime和smalldatetime,用于表示某天的日期和时间的数据类型,如表3-7所示。,表3-7 日期和时间型,124,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,4.货币或货币值的数据类型:money和smallmoney,如表3-3所示。,表3-3 货币或货币值的数据类型,5.可以取值为 1、0 或 NULL 的整数数据类型:bit,125,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,6二进制字符串,二进制字符串如表3-6所示。,表3-6 二进制字符串,126,表的设计,1.1 关系数据库基础,目录,前一页,后一页,结束,7其他数据类型,(1)cursor。这是变量或存储过程 OUTPUT 参数的一种数据类型,这些参数包含对游标的引用。 (2)timestamp。公开数据库中自动生成的唯一二进制数字的数据类型。 (3)sql_variant。用于存储 SQL Server 2005 支持的各种数据类型(不包括text、ntext、image、timestamp和sql_variant)的值。 (4)uniqueidentifier。16 字节全局唯一标识符代码(简称GUID)。 (5)table。这是一种特殊的数据类型,用于存储结果集以进行后续处理。主要用于临时存储一组行,这些行是作为表值函数的结果集返回的。 (6)xml。该数据类型使用户能够在SQL Server数据库中存储XML文档和片段。,127,创建表,建表的语法,CREATE TABLE 表名 ( 字段1 数据类型 列的特征, 字段2 数据类型 列的特征, . ),列的特征: 包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。,128,回顾SQL Server的约束,约束的目的:确保表中数据的完整型 常用的约束类型: 主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列,129,2E-R图转换为关系模型的原则,1、一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。 2、一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。 3 、一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。,130,4、一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。 5.具有相同码的关系模式可以合并。,131,学分,成绩,课程设计2 E-R 图转换成关系模型,(1)学生(学号,姓名,年龄,性别),(2)课程(课程号,课程名,学分),(3)选修(学号,课程号,成绩),132,数据库设计二 E-R 图转换成关系模式,1.预备知识:(1)外码 (2)参照完整性 (3)E-R图转换成关系模型的规则P225 (4)三个范式 2.要求: (1).把BBSDB E-R图转换成关系模式 (2) 用三个范式检验关系的规范性 (3)画出关系之间的参照图,133,绘制E-R图,1,1,1,1,M,1,M,M,M,M,管理,发表,发表,跟随,属于,属于,标题,发贴人,正文,点击

温馨提示

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

评论

0/150

提交评论