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