数据库原理与应用钱能重庆科创职业学院软件教研室Email:qiansiyuan@163.comQQ:723975921主要内容数据库基本理论基础知识数据模型概念结构设计逻辑结构设计数据库系统设计过程与步骤重点、难点概念结构设计逻辑结构设计概念结构向逻辑结构的转换数据库基础知识1、数据与信息的概念1)数据数据是指存储在某一媒体上可加以鉴别的符号资料,这些媒体可以包括纸、磁盘、磁带、光盘等种类。数据的概念包括以下两部分:数据是存储在某一媒体上可加以鉴别的符号的集合。数据内容是事物特性的反映或描述。数据的两种描述方法:物理描述:数据在存储设备上的存储方式。逻辑描述:计算机程序员或用户可操作的数据形式2)信息(information)信息是来自于现实世界事物的存在方式或运动形态的集合,是人们进行各种活动所需要的知识,是数据加工的结果。3)数据(data)与信息的关系数据是承载信息的物理符号或称为载体。信息是人们消化理解的数据,是对客观世界的认识,是知识。1.2.3基本数据模型BasalDataModel定义:数据模型是现实世界数据特征的抽象。数据模型需满足三个方面的要求:1、能比较真实地模拟现实世界;2、容易被人所理解;3、便于在计算机上实现数据模型的组成要素:数据结构数据操作数据完整性要求根据模型应用的不同目的,可以将这些模型划分为两类:一、概念模型,也称信息模型;二、逻辑模型,也称数据模型。三个世界的概念人们把客观存在的事物以数据的形式存储在计算机中,经历了对现实社会中事物特性的认识、概念化、到计算机数据库里的具体表示,是一个逐级抽象的过程,是从现实到概念再到数据的三个领域。有时也将概念世界称为信息世界;将数据世界称为存储或机器世界。(1)现实世界人们管理的对象存于现实世界中,现实世界的事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。举例:医院的医疗管理系统中有医生、患者、专科等构成元素,医生为患者诊疗,患者被送到不同科室诊治,医生、患者、专科是相互关联的。(2)概念世界概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产生概念模型。举例,对医生的描述包括姓名、性别、专长、电话、职称等不同项目。(3)数据世界存入计算机系统的数据是将概念世界中的事物数据化的结果。为了准确地反映事物本身及事物之间的各种联系,数据库表中的数据一定存在一个结构,用数据模型表示结构。数据模型将概念世界中的实体及实体间的联系进一步抽象为便于计算机处理。一、概念结构设计1、基本概念实体Entity:客观存在并可以唯一区别的物体。它可以是具体的事物或一个具体的事件。属性Attribute:实体的某一特性。码Key:又称关键字,可以唯一区别实体的最小属性集。域Domain:实体属性的取值范围。联系Relationship:实体间或属性间的某种联系。(一对一1:1,一对多1:N,多对多M:N)举例:医生、学生……2、概念模型的表示方法Entity-RelationshipApproach(实体-联系法)实体型A实体型B联系名11实体型A实体型B联系名1n实体型A实体型B联系名mn两个实体间的三类联系课程教师参考书讲授1mn供应商项目零件供应mpn职工领导1n实体关系方法Entitytype实体型:用矩形表示,矩形框内写明实体名。Attribute属性:用椭圆形表示,并用无向边与相应的实体连接。Relationship联系:用菱形表示,菱形框内写明联系名,并用无向边与相关实体连接起来,同时在无向边旁边标上联系的类型。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。如图学生学号姓名性别出生年月入学时间系供应量供应商零件项目供应思考以下各个实体之间存在什么样的联系产品与车间,部门与职工,产品与零件,教师与学生,班级与学生,学生与家庭,学生与评语,学生与奖惩,学生与课程E-R图实例分析1建立一个班级管理系统ER模型在班级管理系统中,一个学生对应一个家庭,一个学生可能有一条或多条评语或者奖惩信息,一个学生可以选修多门课程,一门课程也可以被多个不同的学生选修等。如何建立ER模型首先确定实体的类型该系统里面存在学生、家庭、评语、奖惩和课程等5个实体。确定联系类型学生:家庭1:1学生:评语1:N学生:奖惩1:N学生:课程M:N学生课程奖惩评语家庭把实体类型和联系类型组合成ER图确定实体类型和联系类型的属性确定实体类型的键学生课程奖惩评语家庭拥有接受拥有选修1111NMMN学生家庭评语奖惩课程学号姓名性别籍贯编号家长姓名电话编号奖惩内容奖惩原因奖惩时间编号学年学期评语内容拥有受到拥有选修选修时间成绩课程编号课程名称学时选用教材1M111NNNER模型实例分析2论坛的主要功能是为用户提供在网上讨论问题的场所,它要求用户先注册,登录后允许用户发起讨论的主题,针对某个主题发表意见并查看主题及其详细内容列表。论坛中有用户、问题、答案和论坛四个实体,其中一个用户可以提出多个问题,也可以给出多个答案;一个论坛可以有多个问题,一个问题对应一个论坛;一个问题可以有多个答案,一个答案对应一个问题;问题答案用户论坛提出回答拥有拥有用户名密码等级性别出生年月问题编号主题内容时间浏览次数回复次数提问人答案编号问题编号内容时间得分回答人论坛编号说明论坛名称N111N1NN练习某研究所有若干个研究室,每个研究室有一名负责人和多个科研人员,每个科研人员只属于一个研究室。研究所承接了多个科研项目,每个科研项目有多个科研人员参加,每个科研人员可以参加多个科研项目。分析步骤:(1)确定实体类型(2)确定联系类型(3)把实体类型和联系类型组合成ER图(4)确定实体类型和联系类型的属性(5)确定实体类型的键研究室科研项目科研人员组成参加1NNM研究室名办公地点负责人人员编号姓名性别工作量项目编号项目名开工时间负责人数据模型它是按计算机系统的观点对数据建模。主要包括:层次模型(hierarchicalmodel)网状模型(networkmodel)关系模型(relationalmodel)面向对象模型(objectorientedmodel)非关系模型(一)层次模型有且仅有一个结点无父结点,此结点是根结点,例如,在大学数据模型中的校长;其它结点有且仅有一个父结点,比如,校长下属的学院院长,他们的父接点就是大学校长;适合于表示一对多的联系,比如,一个校长下属若干院长。(二)网状模型允许结点有多于一个的父结点,可以有一个以上的结点无父结点。网状模型适用于表示多对多的联系,例如,供应商与项目、项目与库存间的关系等都是M:N的关系。(三)关系模型一个关系的逻辑结构是一张二维的表,二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。关系在磁盘上以文件形式存储,每个字段对应表的一列,每个记录是表中的一行。医生编号姓名职称科室编号特长01104李博主任医师01牙科01106刘晓副主任医师0101020王林副主任医师0102100李颦医师0203002王西平主任医师0304005吴星智副主任医师0406007李可茹主任医师06关系和表关系relation一个关系是一张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个数据库文件的表,例如,医生表或患者表。元组tuple表中的行称为元组。一行是一个元组,对应表中的一个记录。术语1属性attribute表中的列称为属性,每一列有一个属性名,对应数据表中的一个字段,例如医生编号、姓名、职称等字段。域domain属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,在“患者”表“女”或“男”是性别的取值范围,对应“性别”字段的一个域。术语2候选码如果某个属性的值能唯一地标识一个元组,就称其为候选码做;在关系的多个候选码中,选择一个作为主键-主关键字,作为表中的主键。主键的属性被称做主属性。外键定义F是基本关系R的一个或一组属性,但不是关系R的候选码,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键。术语3关键字属性或属性组合,其值能够唯一地标识一个元组。比如,“医生”表中的“医生编号”字段,“患者”表中的“患者病历号”都唯一地表示一名医生、一名患者,那么它们都可以作为记录的关键字。关系模式对关系的描述称为关系模式,其格式为:关系名(属性1,属性2,…,属性N)。一个关系模式对应一个关系的结构。术语4学生(学号,姓名,性别,年龄,……)课程(课程号,课程名称,学时,……)选修(学号,课程号,成绩,选修时间)二、逻辑结构设计1、1:1联系的E-R图到关系模式的转换(1)联系单独对应一关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名)SY(学号,班级编号)逻辑结构设计(2)联系不单独对应一关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。BJ(班级编号,院系,专业名,人数)BZ(学号,姓名,班级编号)或者BJ(班级编号,院系,专业名,人数,学号)BZ(学号,姓名)逻辑结构设计2、1:n联系的E-R图到关系模式的转换(1)联系单独对应一关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注)SY(学号,班级编号)逻辑结构设计(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。BJ(班级编号,院系,专业名,人数)XS(学号,姓名,专业名,性别,出生时间,总学分,备注,班级编号)逻辑结构设计3、m:n联系的E-R图到关系模式的转换对于(m:n)的联系,单独对应一关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如:图描述的“学生(XS)”与“课程(KC)”实体集之间的联系可设计如下关系模式:XS(学号,姓名,专业名,性别,出生时间,总学分,备注)KC(课程号,课程名称,类别,开课学期,学时,学分)XS_KC(学号,课程号,成绩)关系模式XS_KC的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。1.5数据库工程与应用DB设计的目标与特点DB设计方法DB设计步骤DB应用(略)1.5.1DB设计的目标与特点目标在DBMS的支持下,按应用的要求,为某一单位设计一个结构合理、使用方便、效率较高的数据库及其应用系统。内容结构(数据)设计行为设计(应用程序)1.5.2DB设计方法设计核心逻辑数据库设计和物理数据库设计设计方法不同阶段不一样:基于E-R模型设计,基于第三范式(3NF)设计等规范设计法:手工设计与计算机辅助数据设计(powerdesigner、Oracledesigner2000等)1.5.3DB设计步骤本章回顾基本概念Data、DB、DBMS、DBS、DBAEntity、Attribute、Key、Relationship数据处理和数据管理Datamodel、层次、网状、关系模式、子模式、内模式典型数据库应用领域典型DBMS典型DB开发工具E-R方法与E-R模型作业商品顾客供应商销售MN供应MN条形码销售编号数量销售时间顾客编号姓名身份证供应商编号供应商名称地址供应时间供应数量商品名称将该E-R图转换为相应的数据字典