- 9
- 0
- 约3.07千字
- 约 7页
- 2017-06-07 发布于湖北
- 举报
数据库物理设计
设计的第一步是进行物理数据库表的设计,它不仅考虑功能性需求,还要考虑非功能性需求——响应时间和事务吞吐量。?
物理表的设计基于之前分析的E-R模型。物理数据库设计包括设计域,其中包括它们的数据类型和约束。还包括对实象的有效访问,可能需要分割类或者合并类,还需要增强性能的技术,比如索引。
一个关系数据库是一组相关的表。一个表可以表示一个实体类的数据部分。
一般地将E-R模型中的一个实体类对应一张物理表;但是也有很多例外。为了达到有效访问,可能要将两个或多个实体类合并为一个物理表,即“反规范化”。
一、设计域
域是由系统软件比如编程语言或数据库管理系统识别的应用数据的最小单位。在逻辑数据库设计(E-R模型)期间一般使用术语“属性”,在物理数据库设计期间一般使用术语“域”。
一个属性通常映射到一个域。然而,也有例外,有时一个属性需要映射为多个域。如姓名可以映射成“姓”和“名”;逻辑数据库模型(E-R)中的一个组合属性一般也映射成若干个域。
【例1】 一个EMPLOYEE关系:EMPLOYEE(Emp_ID,Name,……)
其中EMPNAME(雇员姓名)属性可能被表示为两个域: 姓、名:
Emp_ID 姓 名 …
或三个域:LASTNAME、FIRSTNAME和MIDDLEINIT:
Emp_ID LASTNAME FIRSTNAME MIDDLING …
【例2】 组合属性Address (地址〉,可以与主类存放在一张表中,创建为5个域: STATE、PROVINCE、CITY、STREET和ZIP。
EMPLOYEE_ID EMPLOYEENAME … STATE PROVINCE CITY STREET ZIP …
在对象关系数据库(如Oracle9i/10g)中,组合属性由类型表示。例如,NAME和ADDRESS各自可以被定义为类型。 在关系数据库中没有类型的定义。
二、选择数据类型
数据类型是由系统软件识别的表示数据的一种编码模式。编码模式对系统分析员通常无关紧要,但是存储数据的空间和访问数据所需的速度在数据库设计中很重要。
系统设计员需要熟悉软件可用的数据类型。如果Java和Oracle交互,它们两个中的数据类型有所不同,如果没有明确地处理,会导致不匹配错误。
选择一个数据类型要均衡下面4个目标,它们的重要程度将根据应用的不同而不同:
1.最小化存储空间。
2.表示域的所有可能值。
3.提高域的数据完整性。
4.支持域上想要的所有数据操作。
系统设计员要思考为一个域选择一个数据类型,能最小化空间、表示相关属性的每个可能的合法值,并且允许数据如需要的那样被操作。
三、控制数据完整性
通过限制一个域的值的可能范围来帮助控制数据完整性。5种普遍的数据完整性控制方法是:默认值、格式控制、范围控制、参照完整性和空值控制。
1.默认值。默认值是没有明确输入一个域的值时该域将采用的值(初值)。
2.格式控制。有些数据必须遵从规定的模式。格式是一种代码模式,它限制了一个域中的各个位置的宽度和可能值。
例如,一个产品号是4位字母数字字符,第一位是字母,接下来三位是数字,用格式A999定义,其中A的意思是只接受字母宇符,9的意思是只接受数字。
其他类型的格式控制可以用于格式化货币值、指明如何显示负数、消除前导 零,或对齐显示域空间中的值。
3.范围控制。数字和字母数据具有一个有限集合的允许值。
例如,一个售出产品域,其单位数量有一个下界0。
4.参照完整性。参照完整性最常见的是关系由外键维护时的对象关系之间的交叉引用。
例如,顾客订单 (CUST_ORDER)中的外键Customer_ID的值必须被限制于来自顾客(CUSTOMER)关系的Customer_ID值的集合。
5.空值控制。空值是一个特殊的域值,不同于0、空白或任何其他值,它表明缺少,或者不知道该域的值。
?四、设计物理表和反规范化
如果使用关系方法,表通过引用主键的外键联系在一起。
如果使用对象关系方法,那么表还可以用引用(或指针)联系起来。但是在数据库领域,它只是刚开始获得赞同。外键方法仍然是物理数据库设计的主题。
物理数据库的设计有两个不同于规范化的目标:
有效使用主存储器(内存)
数据处理快速
主存储器比辅助存储器(硬盘)的速度快得多,任何可能的时候,DBMS都尽量将数据保存在主存中。当数据所在的磁盘物理位置彼此接近时,操作系统执行的磁盘I/O操作最小,数据的处理最有效。一张物理表中的数据(所有行和行中的列)在磁盘上被靠近在一起存储。两张物理表,它们可能是被分开不同地方存放的,那么,进行跨两表的数据操纵所花的系统代价是很高的。
反规范化是根
原创力文档

文档评论(0)