资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第 3 讲 数据模型,关系数据库系统,数据,DBMS,应用,请求,回答,数据库技术,一、数据库系统的特点,数据结构化:,在描述数据时,不但要描述数据本身,还要描述数据之间的关系。,数据独立性高:,数据与程序独立,数据的存取由DBMS负责。,数据由DBMS统一管理和控制:,DBMS提供安全控制,完整性检查,并发控制,数据库恢复等。,二、数据模型,模型的作用:反映现实世界数据特征、DBMS实现的依据。,现实世界 认识抽象 概念模型,数据模型,(机器世界),数据模型的要求:可以比较真实地模拟现实;易于被人理解;便于实现。,数据模型的组成:数据结构+数据操作+约束,常用的数据模型:层次模型,网状模型,关系模型。,面向对象模型是目前发展的方向之一,数据库设计过程,需求分析,概念数据库设计,逻辑数据库设计,确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些等,。,对需求分析所得到数据的更高层的抽象描述。,将概念模型所描述的数据映射为某个特定的DBMS模式数据。,E-R模型,ODL,1、概念模型的表示,1976年,,提出-模型(,Entity-Relationship Model),,用-图来描述概念模型。,观点:世界是由一组称作,实体,的基本对象和这些对象之间的,联系,构成的。,实体,(,Entity):,客观存在并可相互区分的事物叫实体。,如学生张三、工人李四、计算机系、数据库概论。,属性(,Attribute):,实体所具有的某一特性。一个实体可以由若干个属性来刻画。,例如,学生可由学号、姓名、年龄、系、年级等组成。,域(,Domain):,属性的取值范围。,例如,性别的域为(男、女),月份的域为到的整数。,实体型(,Entity Type):,实体名与其属性名集合共同构成实体型。,例,学生(学号、姓名、年龄、性别、系、年级)。,注意实体型与实体(值)之间的区别,后者是前者的一个特例。,如(9808100,王平,21,男,计算机系,2)是一个实体。,实体集(,Entity Set):,同型实体的集合称为实体集。,如全体学生。,联系(,Relationship):,实体之间的相互关联。,如学生与老师间的授课关系,学生与学生间有班长关系。,联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。,同类联系的集合称为联系集。,元或度(,Degree):,参与联系的实体集的个数称为联系的元。,如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。,学生,课程,选修,学号,姓名,系别,课程名,先修课,主讲老师,用矩形表示实体集,在框内写上实体名,用椭圆表示实体的属性,用无向边把实体与其属性连接起来,用菱形表示实体间的联系,将参与联系的实体用线段连接,例:学生选修课程,成绩,码(,Key),:,能唯一标识实体的属性或属性组称作,超码,。,其任意真子集都不能成为超码的最小超码称为,候选码,。,从所有候选码中选定一个用来区别同一实体集中的不同实体,称作,主,码,。,一个实体集中任意两个实体在主码上的取值不能相同。,如学号是学生实体的码。,通讯录(姓名,邮编,地址,电话,,Email,BP),表示要点:,实体集属性中作为主码的一部分的属性用,下划线,来标明。,学生,课程,选修,学号,姓名,系别,课程名,先修课,主讲老师,E-R,模型设计举例,职工,电话,姓名,职工,电话,联系,电话,姓名,号码,地址,适于一个员工只有一部电话的情况,适于多个员工共有一部电话,一个员工多个电话,电话本身具有多个属性的情况。,2、数据模型,层次模型用树形结构(,Tree,)来表示各类实体及实体之间的关系。,网状模型用图结构(,Graph,)来表示各类实体及实体之间的关系。,举例:有一购销关系由三个实体组成,客户(张、王、李),付款方式(现金、支票、信用卡),购买商品(c1,c2,c3,c4,c5),c1 c2 c1 c2 c1 c3 c4 c3 c5 c4 c5,李,张,王,李,王,张,现金,支票,信用卡,c1 c2 c3 c4 c5,李 张 王,现金 支票 信用卡,姓名,C1,C2,C3,C4,C5,李,1,1,2,2,0,张,1,1,0,3,3,王,1,0,2,0,2,代码,付款方式,0,未购,1,现金,2,支票,3,信用卡,层次模型,数据操作:查询、插入、删除和修改。,特点:没有父结点时不能插入子结点;删除父结点时则相应删除子结点;修改时要考虑一致性问题。,存储结构:邻接法,链接法。,网状模型,与层次模型基本相似。,三、关系模型,关系数据库理论建立在严格的数学理论基础之上。其理论奠基人为IBM的高级研究员E.F.Codd。,现在流行的数据库产品大都是关系数据库产品。主要产品有Oracle、DB2、Sybase、Informix、SQL Server等。,关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。,于70年代初提出关系数据理论,他因此获得1981年的,ACM,图灵奖。,早期代表系统,System,:由,IBM,研制。,INGRES:,由加州,Berkeley,分校研制。,关系模型的组成:数据结构+关系操作+完整性约束,表结构 8个运算 三类完整性,关系代数语言,关系演算语言,SQL语言,实体完整性,参照完整性,自定义完整性,概念:关系(Relation),元组(Tuple),属性(Attribute),,主码(Key 同义词:唯一标识符),,域(Domain 属性的取值范围),关系的数据结构(,数学定义,):表(,笛卡尔乘积的子集,)。,关系操作:选择,Select,、投影,Project,、连接,Join,、除,Divide,、并,Union,、交,Intersection,、差,Difference,表示方法:关系代数、关系演算、SQL,关系,笛卡尔积,D,1,D,2,D,n,的子集叫做在域,D,1,D,2,D,n,上的,关系,用,R(D,1,D,2,D,n,),表示。,R,是关系的名字,,n,是关系的度或目。,关系是笛卡尔积中有意义的子集。,关系也可以表示为二维表。,关系,TEACH(T,S,C),T,S,C,t,1,s,1,c,1,t,1,s,1,c,2,t,1,s,2,c,1,t,2,s,3,c,2,元组,属性,关系的性质,列是同质的。,即每一列中的分量来自同一域,是同一类型的数据。,如,TEACH(T,S,C)=(t,1,s,1,c,1,),(t,1,t,2,c,1,),是错误的。,不同的列可来自同一域,每列必须有不同的属性名,。,如,P=t,1,,t,2,,,s,1,,s,2,,s,3,,C=c,1,,c,2,,,则,TEACH,不能写成,TEACH(P,P,C),,还应写成,TEACH(T,S,C)。,行列的顺序无关紧要。,任意两个元组不能完全相同。,集合内不能有相同的两个元素。,每一分量必须是不可再分的数据。,满足这一条件的关系称作满足第一范式(1,NF),的。,数据结构,单一的数据结构关系,实体集、联系都表示成关系。,学生,课程,选修,属于,系,教师,讲授,工作,DEPT(系编号,名称,主任),S(学号,姓名,性别,系编号),C(课程编号,名称,学分),SC(学号,课程编号,成绩),PROF(教师编号,姓名,系编号,职称),TEACH(教师编号,课程编号),候选码(,Candidate Key),关系中的一个属性组,其值能唯一标识一个元组。若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。,任何一个候选码中的属性称作主属性。,如,SC,中的,S#,C#。,主码(,Primary Key),进行数据库设计时,从一个关系的多个候选码中选定一个作为主码。,外部码(,Foreign Key),关系,R,中的一个属性组,它不是,R,的码,但它与另一个关系,S,的码相对应,则称这个属性组为,R,的外部码。,编号,姓名,年龄,职称,医生记录,病员记录,编号,姓名,主治医生姓名,外键,唯一性约束,关系操作,关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(,Set-at-a-time),的方式。,而非关系型的数据操作方式是一次一记录(,Record-at-a-time)。,关系操作可以用关系代数和关系演算两种方式来表示,它们是相互等价的。,如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等。,关系模式的完整性,实体完整性,关系的主码中的属性值不能为空值。,参照完整性,用户定义的完整性,用户针对具体的应用环境定义的完整性约束条件。,系统支持,实体完整性和参照完整性由系统自动支持。,系统应提供定义和检验用户定义的完整性的机制。,抽象的查询语言,关系代数:用对关系的运算来表达查询,需要指明所用操作。,关系演算:用谓词来表达查询,只需描述所需信息的特性。,元组关系演算:谓词变元的基本对象是元组变量。,域关系演算:谓词变元的基本对象是域变量。,具体系统中的实际语言,SQL:,介于关系代数和关系演算之间,由,IBM,公司在研制,System R,时提出的。,QUEL:,基于,Codd,提出的元组关系演算语言,ALPHA,,在,INGRES,上实现。,QBE:,基于域关系演算,由,IBM,公司研制。,关系数据语言的特点,一体化,一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。,非过程化,用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。,面向集合的存取方式,操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式。,四、数据库系统的模式结构,模式:数据库中全体数据的逻辑结构和特征的描述。,数据库系统的三级模式,数据,内模式,模式,外模式,五、数据库系统组成,硬件:网络平台+服务器,软件:操作系统+DBMS,DBA(数据库管理员),100M Switch,工作站,Win 98/me/2000/XP,数据库服务器,Win 2000 Server,Oracle/SQL Server 2000,完全关系系统的12条准则:,DBMS应该遵循Codd提出的十二条法则,才能被分类到完全关系系统。,1)信息法则。关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。,2)授权存取法则。每一个数据项必须通过一个“表名+主键+列名”的组合形式访问。,例如,如果你能用数组或指针访问一个列,就违反这条规则。,3)必须以一致的方式使用空值。如果由于缺少数字值,空值(Nul1)被当作0来处理,或者由于缺少字符值而被当作一个空格处理,那么它就违反了这条规则。空值仅仅是指缺少数据而且没有任何数值。如果缺少的数据需要值,软件提供商通常提供使用缺省值的能力满足这一目的。,4)一个活跃的、在线数据字典应作为关系型表被存储,并且该字典应该可以通过常规的数据存取语言访问。如果数据字典的任何部分贮存在操作系统文件里,就违反了这条规则。,5)除了可能的低级存取例程外,数据存取语言必须提供所有的存取方式,并且是存取的仅有方式。如果你能通过一个实用程序而不是一个SQL接口来存取支持一个表的文件,就有可能违反了本规则。参见规则12。,6)所有能被更新的视图应当是可更新的。例如,如果你能将三个表连结起来,作为一个视图的基础,但却不能更新这个视图,则违反本规则。,7)必须有集合级的插入、更新和删除。目前,大多数RDBMS提供商都在某种程度上提供了这种能力。,8)物理数据的独立性。应用不能依赖于物理结构,如果一个支持某表的文件从一张盘移动到其他盘上或重新命名,不应该对应用产生影响。,9)逻辑数据的独立性。应用不应依赖于逻辑结构。如果一个表必须被分成两个部分,那么应该提供一个视图,以把两段连接在一起,以便不会对应用产生影响。,10)完整性的独立性。完整性规则应该贮存在数据字典中。主键约束、外键约束、检查约束
展开阅读全文