数据库设计的定义

数据库设计的定义,第1张

数据库设计

(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库系统需要 *** 作系统的支持。

数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

SQL是专为数据库而建立的 *** 作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库 *** 作的基础,并且现在几乎所有的数据库均支持SQL。SQL包括了所有对数据库的 *** 作,主要是由4个部分组成:1数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。2数据 *** 纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类 *** 作,其中数据更新又包括插入、删除和更新三种 *** 作。3数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

一.数据表和字段的设计

表设计原则

标准化和规范化

数据的标准化有助于消除数据库中的数据冗余 标准化有好几种形式 我们在这里采用Third Normal Form( NF) 因为 NF在性能 扩展性和数据完整性方面达到了最好平衡 遵守 NF 标准的数据库某个表只包括其本身基本的属性 当不是它们本身所具有的属性时需进行分解 表之间的关系通过外键相连接 它具有以下特点 有一组表专门存放通过键连接起来的关联数据

考虑各种变化

在设计数据库的时候考虑到哪些数据字段将来可能会发生变更

字段设计原则 ) 每个表中都应该添加的 个有用的字段 即要求每张数据表中字段不得少于 个 ) 选择数字类型和文本类型尽量充足 在字段类型为数字或文本时 其长度最好比实际所需的大一些 ) 增加自动增长的 *** 作ID字段(czid) ) 增加记录创建的日期字段(CreateDate) ) 增加删除标记字段(isvoid) 在表中包含一个 删除标记 字段 这样就可以把行标记为删除 在关系数据库里不单独删除某一行 一般采用清除数据程序而且要仔细维护索引整体性

二.键和索引的设计

键选择原则

)为关联字段创建外键 )所有的键都必须唯一 )避免使用复合键 )外键总是关联唯一的键字段

使用系统生成的主键设计数据库的时候采用系统生成的键作为主键 那么实际控制了数据库的索引完整性 这样 数据库和非人工机制就有效地控制了对存储数据中每一行的访问 采用系统生成键作为主键还有一个优点 当拥有一致的键结构时 找到逻辑缺陷很容易 不要用用户的键(不让主键具有可更新性)在确定采用什么字段作为表的键的时候 小心用户将要编辑的字段 通常的情况下不要选择用户可编辑的字段作为键

可选键有时可做主键把可选键进一步用做主键 可以拥有建立强大索引的能力

索引使用原则

索引是从数据库中获取数据的最高效方式之一 %的数据库性能问题都可以采用索引技术得到解决

索引外键大多数数据库都索引自动创建的主键字段 但是可别忘了索引外键 它们也是经常使用的键 比如运行查询显示主表和所有关联表的某条记录就用得上 不要索引大型字段(有很多字符) 这样作会让索引占用太多的存储空间

不要索引常用的小型表不要为小型数据表设置任何键 假如它们经常有插入和删除 *** 作就更别这样作了 对这些插入和删除 *** 作的索引维护可能比扫描表空间消耗更多的时间

三 数据完整性设计

完整性实现机制 实体完整性 主键

参照完整性 父表中删除数据 级联删除 受限删除 置空值父表中插入数据 受限插入 递归插入父表中更新数据 级联更新 受限更新 置空值

DBMS对参照完整性可以有两种方法实现 外键实现机制(约束规则)和触发器实现机制

用户定义完整性 NOT NULL CHECK 触发器

用约束而非商务规则强制数据完整性采用数据库系统实现数据的完整性 这不但包括通过标准化实现的完整性而且还包括数据的功能性 在写数据的时候还可以增加触发器来保证数据的正确性 不要依赖于商务层保证数据完整性 它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上

强制指示完整性在有害数据进入数据库之前将其剔除 激活数据库系统的指示完整性特性 这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件

使用查找控制数据完整性控制数据完整性的最佳方式就是限制用户的选择 只要有可能都应该提供给用户一个清晰的价值列表供其选择 这样将减少键入代码的错误和误解同时提供数据的一致性

采用视图为了在数据库和应用程序代码之间提供另一层抽象 可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表 这样做还等于在处理数据库变更时给你提供了更多的自由

lishixinzhi/Article/program/SQL/201311/16258

第一范式:确保每列的原子性

如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式

例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。

第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关

如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式

例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"列不依赖于主键列,应删除该列。

第三范式:在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关,而不是间接相关

如果一个关系满足第二范式,并且除了主键以外的其它列都不依赖于主键列,则满足第三范式

为了理解第三范式,需要根据Armstrong公里之一定义传递依赖。假设A、B和C是关系R的三个属性,如果A-〉B且B-〉C,则从这些函数依赖中,可以得出A-〉C,如上所述,依赖A-〉C是传递依赖。

例如:订单表(订单编号,定购日期,顾客编号,顾客姓名,……),初看该表没有问题,满足第二范式,每列都和主键列"订单编号"相关,再细看你会发现"顾客姓名"和"顾客编号"相关,"顾客编号"和"订单编号"又相关,最后经过传递依赖,"顾客姓名"也和"订单编号"相关。为了满足第三范式,应去掉"顾客姓名"列,放入客户表中。

SQL的标准

结构化查询语言是一种介于关系代数与关系演算之间的语言,其功能包括查询、 *** 纵、定义和控制4个方面。目前已成为关系数据库的标准语言。

SQL语言从1974年Boyce和Chamberlin提出至今,经过不断的修改、扩充和完善,先后经历了以下几个标准如表3-1所示:

表3-1 SQL标准

标准的次序 标准的简称 发布机构 发布时间 备注

1 SQL-86 ANSI

(即美国国家标准)

1986年10月 1987年ISO也通过了该标准

2 SQL-89 ANSI 1989年

3 SQL-92 ANSI 1992年 即SQL2

4 SQL-99 ANSI 1999年 即SQL3

以上就是关于数据库设计的定义全部的内容,包括:数据库设计的定义、SQL语言是一种标准的数据库语言包括哪些功能、数据库开发规范详细介绍[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9503987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存