
数据库及数据仓库精要.ppt
35页数据库及数据仓库精要前言n 数据库扮演的角色也叫联机事务处理OLAP(Online Transactional Processing), 数据库保存由日常管理过程中涉 及的业务操作创建的操作型结构 化数据,数据记录系统管理行为 (通过各种业务逻辑来交互) 反映细粒度的事务数据,保存时 间短主要依赖关系建模方法论 n 数据仓库扮演的角色也叫联机分析处理OLAP(Online Analytical Processing),数据 由联机事务处理来,经过选择和 聚集,变为分析事实产生的因果 ,辅助决策制定(通过各种分析 报表来交互)反映大范围的事 实数据,保存时间长主要依赖 多维建模方法论问题的导入结构良好的表,范式,SQL语言及关系n基本表与中间表、临时表不同,基本表及其字段之间的关系,应尽量 满足第三范式,是结构良好的表,它可以消除删除行,改变行,修改 行(实例)的错误和异常它具有如下四个特性:(1) 原子性,基本表 中的字段是不可再分解的2) 原始性,基本表中的记录是原始数据 (基础数据)的记录3) 演绎性,由基本表与代码表中的数据,可 以派生出所有的输出数据4) 稳定性,基本表的结构是相对稳定的 ,表中的记录是要长期保存的。
5)基本表的每个决定因子都必须是 候选建6)菲基本表必须分解为两个或多个基本表n三个基本范式:(1) 1NF是对属性的原子性约束,要求属性具有原子 性,不可再分解2) 2NF是对记录的惟一性约束,要求记录有惟一 标识,即实体的惟一性3) 3NF是对字段冗余性的约束,即任何字 段不能由其他字段派生出来,它要求字段没有冗余n大多数结构不良好的表,会产生或包含大量的冗余数据,同时可能会 出现删除行,改变行,修改行的错误和异常,这都是都是使用了SQL DML CURD语句产生的像中间表、报表和临时表:(1) 中间表是存放 统计数据的表,它是为数据仓库、输出报表或查询结果而设计的,有 时它没有主键与外键(数据仓库除外)2) 临时表是程序员个人设计 的,存放临时记录,为个人所用3) 基表和中间表由DBA维护,临 时表由程序员自己用程序自动维护n关系是一个由行和列组成的二维表,不一定结构良好,特征为:行包 括实体的数据,列包含实体性质的数据,表中的单元格存储单个值, 每列的所有实体类型一致,每列具有唯一名称,列的顺序任意,行的 顺序任意,任意两行互不重复这是最大的复合关系模式的条件,符 合这个要求的表就是关系型表格。
统计,汇总,分析表自动用Excel做目录n E-R模型的概念与表示n 实体-联系方法(概念设计)n E-R图向关系表的转换(逻辑设计)E-R模型的概念与表示实体集-语义(名词类性)n 实体(Entity) n 事物就是在行动影响下物质本身的改变,或者进行客观存在并可相互 区别的事物称为实体实体可以是具体的,也可以是抽象的概念或联系 n 具有共性的一类实体可归类为一个实体集(Entity set)n 属性(Attribute) n 实体所具有的某一特性称为属性n 一个实体可以由若干个属性来刻画n 域(Domain) n 属性的取值范围或类型n 键或标识符(Key) n 标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个 实例每个实体都必须至少有一个标识符如果实体只有一个标识符, 则它为实体的主标识符如果实体有多个标识符,则其中一个被指定为 主标识符,其余的标识符就是次标识符了E-R模型的概念与表示联系集-语义(动词类型)n 实体之间可以通过联系来相互关联与实体和实体集对应,联系也可以分 为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系, 联系是具有方向性的n 联系具有方向性,每个方向上都有一个基数。
n 联系的两个方向上各自包含有一角色名,描述该方向联系的作用n 按照实体类型中实例之间的数量对应关系,通常可将联系分为4个基本联系 分为类,即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多 对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)n 三个特殊联系 n 每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实 体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标 识符时,这种联系则称为标定联系,也叫依赖联系反之称为非标定联系,也 叫非依赖联系 n 递归联系是实体集内部实例之间的一种联系,通常形象地称为自反联系同一 实体类型中不同实体集之间的联系也称为递归联系E-R模型的概念与表示E-R模型的概念与表示E-R图的设计步骤 n 第一步:针对特定的应用,确定实体、属性和实体间的联系,画出局 部E-R图n 第二步:综合各个局部E-R图,产生反映数据库整体概念的总体E-R图 E-R模型的概念与表示弱实体集n 有些实体集的所有属性都不足以形成主码,这样的实体集称为弱实体 集(Weak Entity Set),依赖于其它实体集而存在。
n 与此相对,其属性可以形成主码的实体集称为强实体集n 弱实体集所依赖的实体集称为标识实体集(identifying entity set),相应的关系为标识联系(identifying relationship)OrderItemdatestatus paymentorder#item#tagIncludeE-R模型的概念与表示n 弱实体集通常没有主键n 以订单的分项为例,订单项实体集可能有编号(局部的编号)、 商品名称、数量、单价等属性,但是这些属性不足以识别一个定 单项,因为完全有可能在另外一张订单中出现相同的内容n 必须把订单的关键字(如一个全局的订单编号)和定单项的局部 编号结合起来才能标示一个定单项n 弱实体集的属性中,用来与标识实体集的键结合以识别一个弱实体集 的属性称为部分键(partial key)n 弱实体集的主键=它的标识实体集的键+它的部分键4.1 E-R模型的概念与表示n ER图使用双线矩形表示弱实体集,弱实体集与其 标识实体集之间的联系用双线菱形表示,弱实体 集的部分键使用虚下划线表示OrderItemdatestatus paymentorder#item#tagIncludeE-R模型的概念与表示n实体集的层次关系n 现实世界中的很多概念之间都具体层次关系。
n ER模型使用实体集间的继承和ISA关系来描述这种概念间 的层次关系n 实体集老师或学生都继承自实体集人,并且实体集老师或学生与 实体集人之间都满足ISA关系,即老师或学生都是人的一种n ISA关系可以从两个方向进行设计n 从自上而下的方向,首先设计出人这一实体,然后根据属性的不 同,将两种不同的人具体化(specification)为老师或者学生 n 从自下而上的方向,首先设计出老师或学生,然后将他们的共性 提取出来,泛化(generalization)为人E-R模型的概念与表示n 层次关系的约束n 从子实体集之间是否相交角度,不相交(disjoin)泛化要求继 承自同一父辈的多个子实体集之没有交集,重叠(overlapping )泛化则允许有交集n 从泛化是否完全角度,全参与泛化要求所有父辈实体都必须同时 也是某一子辈实体,部分泛化则允许不是任何子辈实体的父辈实 体存在n 例如,在采用会员制的销售系统中,顾客被分为会员(VIP)与非会员 (NONVIP)两种,会员拥有消费积分(credit),非会员拥有固定的折扣 率(discount)一个顾客要么是会员、要么是非会员,二者必取其一 ,因此为全参与不相交。
E-R模型的概念与表示CustomerISAVIPNONVIPcreditdiscountdisjoincustomer #namegenderbirthdaycityaddressemailE-R图例实体-联系方法实体还是属性n 凡是满足以下两条准则的事物,一般均可作为属性对待 n 作为属性,不能再具有需要描述的性质属性必须是不可分的数 据项,不能包含其他属性n 属性不能与其他实体具有联系,即E-R图中所表示的联系是实体 之间的联系n 例如书籍是一个实体,书号、书名、作者、出版社、定价 是书籍的属性,如果应用系统不再需要作者的其他信息, 如、住址、个人主页等,那么根据原则1可以将作者 作为书籍的属性对待但是如果这些信息是必须的,那么 作者作为一个实体看待更为恰当实体-联系方法bookisbntitlepricepresswritten_bynameauthorauthorcityserialbookisbntitlepricepressauthor实体-联系方法实体还是联系n 一般来说,实体对应现实世界中实际存在的事物,是名词类型;联系 对应的概念一般是一种动作,是动词类型n 例如:n 书和作者都是现实世界中的名词,因此作为实体。
n 而written_by表示作者写书这一动作,因此作为联系n 映射基数往往影响到一个概念是作为实体还是联系的选择 n 若一项贷款只能由一个分行发放,并且只能由一个客户借贷,则 将Loan作为Customer与Branch之间的联系比较合适 n 但如果允许多个客户共同借贷同一项贷款 ,在这种情况下,将 Loan作为实体实体-联系方法二元关系还是多元关系n 数据库中使用得最多的是二元联系n 通常,将多元关系转换为二元关系n 如学校选课系统,涉及到学生、教室、教师、课程等多个实体,可表 示为一个四元关系 学生上课教室教师课程学生选课课程授课教师地点教室实体-联系方法n 但也有一些情况下使用多元联系更好(如需要表达多个实 体集间的约束时)n 如学校选课系统中若一门课程可由多个教师教授,并且若 课程和教师确定,则上课的地点也随之确定实体-联系方法联系属性的放置n 影响联系属性放置的主要因素是联系的映射基数n 对于一对一或一对多联系,选择作为联系属性或实体属性只是体现语 义侧重点的不同 n 如销售系统需要记录顾客(Customer)与订单(Order)之间的关系( Possess)由于一个订单只能由一个顾客所有,因此为顾客与订单之间 为一对多关系。
这时,记录生成订单日期的属性(date)既可以作为联 系Possess的属性,也可作为订单的属性 Orderdatestatus paymentorderPossesCustomer实体-联系方法n 对于多对多联系,联系的属性不能作为实体的属性n 如,顾客与希望书籍之间的联系希望购买(Wish_for)n Wish_for有一属性date,表示顾客发出购买意向的日期, 这一属性不能作为参与联系的两个实体Customer或Book的 属性BookWish_forCustomerdate实例——书店数据库n 类似于Amazon的书店系统所用的数据库n数据库中要求存储所有书籍的相关信息,并对书加以 分类;n顾客的有关信息也要求存储在数据库中,并且允许用 户选择自己感兴趣的书籍类别及希望购买的图书;n顾客在决定购买时可以发出订单,同一订单可以包含 多种书,每种书可一次购买多本顾客在订单中提供 送货地址,系统根据订单发货实例——书店数据库n 合并分E-R图n 各分E-R图之间的冲突主要有三类: n 属性冲突 (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同 例如:属性“订单号”有的定义为字符型,有的为数值型。
(2) 属性取值单位冲突 例如:属性“库存”有的以册为单位,有的以千册为单位 n 命名冲突 (1) 同名异义不同意义对象相同名称 例如:Author和Customer均有属性name (2) 异名同义(一义多名)同意义对象不相同名称 例如:“项目”和“课题”实例——书店数据库n 结构冲突 (1) 同一对象在不同应用中具有不同的抽象 例如: “作。
