《数据库系统设计.docx》由会员分享,可在线阅读,更多相关《数据库系统设计.docx(13页珍藏版)》请在三一办公上搜索。
1、数据库系统设计数据库系统设计之总预览 我妈怀我的时候才23岁,我爸和我妈都觉得这时候生小孩太年轻了,准备打掉,过几年情况好一点再生。 结果,第一次去医院,医院停电; 第二次去医院,跟我妈熟的那个医生出差了(不放心别人); 第三次去医院,器材正在维修 最后。医生告诉我妈:这孩子现在已经打不了了,只好生下来。 数据库系统设计的优劣直接影响信息系统的质量和运行效果。在具备了DBMS、系统软件、操作系统和硬件环境时,对数据库应用开发人员来说,就是如何使用这个环境表达用户的要求,构造最优的数据模型,然后据此建立数据库及其应用系统,这个过程就是数据库设计。 1、 数据库系统设计之数据库系统生存期 2、 数
2、据库系统设计之ER模型 3、 数据库系统设计之关系模型 零测试 数据库系统设计之数据库系统生存期 怀疑老公有外遇,苦于一直没有证据。后来趁他洗澡,偷偷拿他手机将自己的名字改成12520,然后给他发了条短信:“回复男姓名女姓名,马上揭秘你和意中人的缘分指数,找到命中真爱!仅收取普通短信费飞信对对碰。”第二天,我顺利的知道了小三姓名。 数据库应用系统的定义:以数据库为基础的信息系统通常称为数据库应用系统,它一般具有信息的采集、组织、加工、抽取、综合和传播等功能。数据库应用系统的开发是一项软件工程,但又有自己特有的特点,所以特称为“数据库工程” 数据库系统生存期的定义:我们把数据库应用系统从开始规划
3、、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。一般分为如下7个阶段: 1、 规划阶段 a) 定义:对于数据库系统,特别是大型数据库系统或大型信息系统中的数据库群,规划阶段是十分必要的,规划的好坏直接影响到整个系统的成功与否。 b) 步骤: i. 系统调查; ii. 可行性分析; iii. 确定数据库系统的总目标,并对应用单位的工作流程进行优化和制定项目开发计划。 2、 需求分析阶段 a) 定义:是计算机人员和用户双方共同收集数据库所需要的信息内容和用户对处理的需求,并以需求说明书的形式确定下来,作为以后系统开发的指南系统验证的依据。 b) 步骤: i. 分析
4、用户活动、产生业务流程图; ii. 确定系统范围,产生系统关联图; iii. 分析用户活动涉及的数据,产生数据流图; iv. 分析系统数据,产生数据字典 3、 概念设计阶段 a) 定义:设计人员仅从用户角度看待数据及处理需求和约束,尔后产生一个反映用户观点的概念模型,得到一个与DBMS无关的概念模型。概念设计的目标是产生反映用户单位信息需求的数据库概念结构,即概念模型,概念模型独立于计算机硬件结构,独立于数据库管理系统。 b) 步骤: i. 进行数据抽象、设计局部概念模型 ii. 将局部概念模型综合成全局概念模型 iii. 评审 1. 用户评审:重点放在确认全局概念模型是否准确完整地反映了用户
5、的信息需求和现实世界事物的属性间的固有关系。 2. DBA及应用开发人员评审:侧重于确认全局结构是否完整,各种成分划分是否合理,是否存在不一致性,以及各种文档是否齐全等 c) 概念模型中常用的数据抽象方法: i. 聚集:是将若干对象和它们之间的联系组合成一个新的对象 ii. 概括:是将一组具有某些共同特性的对象抽象成更高一层意义上的对象 d) 概念模型中最著名的方法:实体联系方法,建立ER模型,用ER图表示概念结构,得到数据库的概念模型。 4、 逻辑设计阶段 a) 定义:把概念模型转换成DBMS能处理的逻辑模型,转换过程中要对模型进行评价和性能测试,以便获得较好的模式设计。逻辑设计的目的是把概
6、念设计阶段设计好的概念模型转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构 b) 步骤: i. 把概念模型转换成逻辑模型 ii. 设计外模型 iii. 设计应用程序与数据库的接口 iv. 评价模型 v. 修正模型 c) 评价逻辑结构的常用方法: i. 定量分析:包含两个参数处理频率和数据容量,处理频率是在数据库运行期间应用程序的使用次数,数据容量是数据库中记录的个数。 ii. 性能测量:是指逻辑记录的访问数目。 5、 物理设计阶段 a) 定义:对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,就是物理设计。完全依赖于硬件环境和数据库软件产品。 b) 步骤: i.
7、存储记录结构设计 ii. 确定数据存放位置 iii. 存取方法的设计 iv. 完整性和安全性考虑 v. 程序设计 c) 数据库的物理结构的组成: i. 存储记录格式 ii. 存储记录安排 iii. 存取方法 6、 数据库的实现 a) 定义:对数据库物理设计初步评价完成后就可以开始建立数据库了 b) 步骤: i. 定义数据库结构 ii. 数据装载 iii. 编制与调试应用程序 iv. 数据库试运行 c) 数据装载的分类 i. 对于数据量不是很大的小型系统,步骤如下: 1. 筛选数据 2. 转换数据格式 3. 输入数据 4. 校验数据 ii. 对于大中型系统,步骤如下: 1. 筛选数据 2. 输入
8、数据 3. 校验数据 4. 转换数据 5. 综合数据 7、 数据库的运行与维护 a) 定义:在数据库试运行结果符合设计目标后,数据库就可以真正投入运行了,数据库的维护工作主要是由DBA来完成的。 b) 步骤: i. 数据库的转存和恢复 ii. 数据库安全性、完整性控制 iii. 数据库性能的监控、分析和改进 iv. 数据库的重组织和重构造 1. 重组织:数据库运行一段时间后,由于记录的不断增、删、改,会使数据库的物理存储变坏,从而降低数据库存储空间的利用率和数据存取的效率,使数据库的性能下降,这时DBA就要对数据库进行重组织 2. 重构造:当数据库应用环境发生变化时,会导致实体及实体间的联系也
9、发生相应的变化,使原有的数据库设计部能很好地满足新的需求,从而不得不适当调整数据库的模式和内模式。 零测试 数据库系统设计之ER模型 昨天14岁的侄女跟我在QQ上哭诉昨晚与交往三周的前任分手, 痛不欲生,并劝戒我:小叔,原来爱情这么伤!还感叹道:问世间情为何物,直教人生死相许!然后接着说:你33岁都没有谈恋爱实在是明智的决定啊. 实体联系模型是广泛被采用的概念模型设计方法,ER模型是对现实世界的一种抽象,ER模型的基本元素是:实体、联系和属性。 1、 ER模型的实体 a) 实体:是一个数据对象,指应用中可以区分的客观存在的事物; b) 实体集:是指同一类实体构成的集合; c) 实体类型:是对实
10、体集中实体的定义。 d) 命名规则:在ER模型中,实体用方框表示,方框内注明实体的命名。实体名常用大写字母开头的有具体意义的名词表示。 2、 ER模型的联系 a) 联系:表示一个或多个实体之间的关联关系; b) 联系集:是指同一类联系构成的集合; c) 联系类型:是对联系集中联系的定义。 d) 命名规则:在ER模型中,联系用菱形框表示,框内注明联系的命名,并用线段将其与相关的实体链接起来。联系是实体之间的一种行为,所以一般用动词来命名。 e) 联系的元数 i. 定义:一个联系涉及到的实体集个数,称为该联系的元数或度数 ii. 分类: 1. 一元联系:同一个实体集内部实体之间的联系 2. 二元联
11、系:两个不同实体集、实体之间的联系 3. 三元联系:三个不同实体集实体之间的联系 4. 多元联系:多个不同实体集实体之间的联系 f) 联系类型的约束 i. 定义:联系类型的约束限制了参与联系的实体的数目 ii. 分类: 1. 基数约束:实体集E1和E2之间有二元联系,则参与一个联系中的实体数目称为映射基数(Mapping Cardinalities)。 2. 参与约束:如果实体集E中的每个实体都参与联系集R的至少一个联系中,我们称为实体集E完全参与联系集R;如果实体集E中只有部分实体参与联系集R的联系,我们称实体集E部分参与联系集R。 3、 ER模型的属性 a) 属性:实体的某一特性称为属性;
12、 b) 实体标识符:在一个实体中,能够唯一标识实体的属性或属性集称为实体标识符; c) 属性域:属性的可能取值范围称为属性域,也称为值域。 d) 命名规则:在ER模型中,属性用椭圆形框表示,加下划线的属性为标识符。 4、 ER模型属性的分类 a) 根据属性类别分类 简单属性:是不可再分割的属性,如年龄、性别 复合属性:是可再分解为其他属性的属性,如地址属性可分为省、市、区等。 b) 根据取值特点分类 i. 单值属性:指的是同一实体只能取一个值,如一个学生只能有一个年龄; ii. 多值属性:指的是同一个实体的某些属性可能取多个值,如一个学生的学位可以是学士、硕士、博士。 iii. 为了防止数据冗
13、余,多值属性的变换方法有: 1. 将原来的多值属性用几个新的单值属性来表示 2. 将原来的多值属性用一个新的实体类型来表示, c) 根据存储特点分类 i. 派生属性:有时候,两个或两个以上的属性值是相关的,此时可以从其他属性值推导出值的属性,不必存储在数据库内,如职工中实发工资可以从基本工资、奖金推导出来 ii. 存储属性:需要存储值的属性,如年龄 d) 根据是否允许为空特点分类 i. 空值:当实体在某个属性上没有值时应使用空值,如是否婚配 ii. 非空值:不能为空的属性值,如身份证号。 5、 ER模型的操作 a) 定义:在数据库设计过程中,常常要对ER图进行种种变化,这种变化称为ER模型的操
14、作,包括实体类型、联系类型和属性的分裂、合并、增删等等。 b) 分类: i. 分裂:如把教师实体分裂成男教师和女教师 ii. 合并:如把男教师和女教师合并成教师 iii. 增加:如增加校长这个实体 iv. 删除:如删除校长这个实体 6、 增强版的ER模型 a) 定义:ER模型的基本元素:实体、联系和属性已经建立了许多应用环境的ER模型,但是有一些特殊的语义无法用以上三种元素表达,因此需要扩充基本ER模型,从而出现了增强版的ER模型 b) 术语: i. 弱实体与强实体 1. 定义:在现实世界中,有些实体对于另一些实体具有很强的依赖关系,也就是一个实体的存在必须以另一实体的存在为前提,此时称前者为
15、弱实体,后者为强实体。ER图中弱实体用双线矩形框表示,与弱实体的联系用双线菱形框表示,联系之间也用双线边。 ii. 子类实体与超类实体 1. 定义:当较低层上实体类型表达了与之联系的较高层上的实体类型的特殊情况时,就称较高层上实体类型为超类型,较底层上实体类型为子类型。在数据库设计中,从子类到超类的抽象化过程称为“概化”,从超类到子类的抽象化过程称为“特化” 2. 性质:子类和超类之间具有继承特点,即子类实体继承超类实体的所有属性,但子类实体本身可以包含比超类实体更多的属性。继承性是通过子类i. ii. 实体和超类实体有相同的实体标识符实现的。 3. 特化过程的约束: a) 不相交约束:是指特
16、化的子类是否相交 i. 不相交:在特化过程中子类必须是不相交的。d表示不相交 ii. 重叠:在特化过程中子类是可以相交的。o表示重叠 b) 完备性约束: i. 整体特化:指定超类中的每个实体必须是特化中某个子类的一个成员 ii. 部分特化:允许超类中的实体可以不属于任何一个子类 4. 特化过程的规则 i. 从超类删除一个实体意味着该实体被自动地从它隶属的所有子类中删除 ii. 向超类中插入一个实体意味着该实体被强制地插入到满足这两种约束的子类中 iii. 向一个整体特化的超类中插入一个实体,意味着实体被强制地插入到至少一个特化的子类中 7、 采用ER模型的数据库概念设计步骤 a) 设计局部ER
17、模型 i. 确定局部结构范围 ii. 定义实体 iii. 定义联系 iv. 分配属性 b) 把各局部ER模型综合成一个全局ER模型 i. 确定公共实体类型 ii. 合并局部ER模型 iii. 消除冲突 1. 属性冲突 2. 结构冲突 3. 命名冲突 c) 全局ER模型的优化 i. 合并实体类型 ii. 消除冗余属性 iii. 消除冗余联系 零测试 数据库系统设计之关系模型 “请问正方二辩,你有女朋友吗?” “这跟今天的辩题没有关系。” “请正面回答我的问题。” “没有。” “那你愿意做我男朋友吗?” “啊?我愿意” 1、 基本术语 a) 关系模型:用二维表格表示实体集,用关键码表示实体之间联系
18、的数据模型; b) 属性:在关系模型中,字段称为属性; c) 属性值:字段值称为属性值; d) 关系模式:记录类型称为关系模式; e) 元组:记录称为元组; f) 关系:元组的集合称为关系; g) 元数:关系中属性个数称为元数; h) 基数:元组个数称为基数; i) 关键码:由一个或多个属性组成的称为关键码; j) 超键:在关系中能唯一标识元组的属性集称为关系模式的超键; k) 候选键:不含有多余属性的超键称为候选键; l) 主键:用户选作元组标识的候选键称为主键; m) 外键:如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。 2、 集合论中定义的关系: a) 关系的定义:关系是
19、一个属性数目相同的元组的集合 b) 关系的规范性限制: i. 关系中每一个属性值都是不可再分解的; ii. 关系中不允许出现重复元组; iii. 由于关系是一个集合,因此不考虑元组间的顺序; iv. 元组中的属性理论上是没有顺序的,但是用时按习惯考虑列的顺序。 3、 三类完整性约束 a) 实体完整性规则:要求关系中元组在组成主键的属性上不能有空值,比如学号不能为空,这是唯一标识; b) 参照完整性规则:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值,比如学生表上的课程号可以是空值;主要由如下三点变
20、通: i. 外键和相应的主键可以不同名,只要定义在相同值域上即可; ii. R1和R2也可以是同一个关系模式,此时表示了同一个关系中不同元组之间的联系; iii. 外键值是否允许空,应视具体问题而定。 c) 用户自定义的完整性规则:用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以实用统一的方法处理它们,比如学生的年龄定义为两位数,大于两位数就报错。 4、 ER图模型到关系模式转换的步骤 a) 将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键; b) 根据不同的情况做不同的处理 i. 如果实体间联系是1:1,可以在两个实体类型转换成的两个
21、关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性; ii. 如果实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性; iii. 如果实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两段实体键的组合。 5、 采用ER模型的数据库逻辑设计步骤 a) 导出初始关系模式集 b) 规范化处理 c) 模式评价 d) 模式修正 e) 设计子模式 6、 关系模型的组成 a) 数据结构:数据库中全部数据及其相互联系都被组织成关系的形式,关系模型基本的数据结构是关系; b) 数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作,关系运算分成关系代数和关系演算两种; c) 数据完整性规则:数据库中必须满足实体完整性,参照完整性和自定义完整性等三类完整性规则 零测试