`
yiheng
  • 浏览: 156686 次
社区版块
存档分类

SQL Server 数据库设计

 
阅读更多

一、数据库设计的必要性

在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,我们构建的数据库不合理、不恰当,那么数据库的维护、运行效率会有很大的问题。这将直接影响到项目的运行性和可靠性。

二、什么是数据库设计

数据库设计实际上就是规划和结构化数据库中的数据对象以及这些数据对象之间的关系过程。

三、数据库设计的重要性

Ø 不经过设计的数据库或是设计糟糕的数据库很可能导致

1、 数据库运行效率地下

2、 更新、删除、添加数据出现问题

Ø 良好设计的数据库

1、 执行效率高

2、 使应用程序更便于开发

3、 扩展性好

4、 维护性好

四、数据模型

数据模型就像是数据间联系的一个轮廓图,整个模型就像一个框架。

如果按照记录间联系的表示方式,对数据模型进行分类,可以分为:层次模型、网状模型、关系模型。前两种又称为格式化数据模型。数据模型的好坏直接影响到数据库的性能,所以数据模型的选择是数据库设计的首要任务。

Ø 实体-关系(E-R)数据模型

E-R数据模型(Entity-Relationship data model),即实体-关系数据模型。E-R数据模型不同于传统的关系数据模型,它不是面向实现,而是面向现实物体的。

Ø 实体(Entity)

数据是用来描述现实中的物体的,而描述的对象都是形形色色的,有具体的、也有抽象的;有物理上存在的、也有概念性的。凡是可以互相区别而且可以被人们认识的事、物、概念等统统抽象为实体。多个相同的类型的实体可以称为实体集(Entity set)。因此,在E-R数据模型中,也有型与值之分;实体可以作为型来定义,每个实体可以是它的实例和值。

Ø 属性(Attribute)

实体一般具体若干特征,这些特征称为实体的属性。而每个属性都有自己的取值范围,在E-R数据模型中称为值集(value set)。在同一实体集中,每个实体的属性及其值集都是相同的,但可能取不同的值。属性对应数据库表的列。

Ø 关系(Relationship)

实体之间会有各种关系,这些关系抽象为联系。不但实体可以有属性,关系也可以有属性。

五、数据库设计步骤

Ø 数据库设计可以分为以下几个阶段

1、 需求分析阶段:分析客户的业务需求,特别是数据方面的需求

2、 概要设计阶段:绘制数据库的E-R图,并确认需求文档的正确性和完整性,E-R图是项目的设计人员、开发人员、测试人员,以及和客户进行沟通的重要凭据

3、 详细设计阶段:将概要设计阶段的E-R图转换为数据库表,进行逻辑设计,确定各个表之间的主外键关系,运用数据库的三范式进行审核,并进行技术评审。最后决定选哪种数据库(Oracle、SQLServer、MySQL)来建库、建表。

Ø 需求分析阶段:数据库系统分析

秀气分析阶段的重点是调查、收集、分析客户的业务数据需求以及数据的安全性、完整性需求等。

需求分析步骤:

1、 确认业务需求

2、 标识关系实体

3、 标识每个实体的具有的属性

4、 确认实体之间的关系

Ø 概要设计阶段:绘制E-R图

作为数据库设计者,你需要和项目组内其他成员分享你的设计思路,共同研讨数据库设计的合理性、安全性、完整性,并确认是否符合客户的业务需求。那么使用E-R图,这种图形化的表示方式最为直观。

*E-R图中的实体、属性和关系


上面的简单E-R图可以看出用户和收支之间的关系。在上图中可以看出:用矩形表示实体,实体是一般名词;椭圆表示属性,一般也是名词;菱形表示关系,一般是动词。

*映射基数

映射基数表示可以通过关系与该实体的个数。对于实体集A和B之间的二元关系,可能的映射基数有:

1、 一对一:也就是A实体中最多只有一个B实体的关联,而B实体的最多只有一个A实体的关联。用E-R图表示:


2、 一对多:A实体可以与B实体任意数量的进行关联,B中的实体最多与A中的一个实体关联。E-R图表示:


3、 多对一:A实体最多与一个B实体进行关联,而B实体可以和任意多个A实体进行关联。E-R图表示:


4、 多对多:A实体可以有多个B实体,而B实体也可以有任意多个A实体。E-R图表示:


*E-R图

E-R图可以以图形化的方式将数据库的整个逻辑结构表示出来,组成部分有:

1、 矩形表示实体集

2、 椭圆表示属性

3、 菱形表示关系、

4、 直线用来连接实体集与属性、实体集和关系

5、 直线箭头表示实体集之间映射基数

Ø 详细设计阶段:将E-R图转换为表

步骤如下:

1、 将各个实体转换为对应的表,将各属性转换为对应的列

2、 标识每张表的主键

3、 将实体之间的关系转换为表与表之间的主外键关系

六、数据库设计规范化

Ø 数据库设计中经常出现的问题

1、 数据冗余大

2、 插入数据异常

3、 删除异常

4、 更新异常

Ø 规范设计

一个较好的关系数据库模型,它的每个关系中的属性一定要满足某种内在的语义条件,即要按一定的规范设计关系模型,这就是设计的规范化。

在数据库设计时,有一些专门的规则,称为数据库的设计范式,遵循这些规则,就可以创建出良好的数据库,数据库著名的三大范式理论:

1、 第一范式(1NF)

第一范式是满足关系数据库模型所要遵循的最基本的条件范式,几关系中的每个属性必须是不可再分的简单项,不能是属性组合,即属性的取值是不可拆分的原子值。

2、 第二范式(2NF)

第二范式是在第一范式的基础上,确保表中的每列都和主键相关。其定义是如果一个关系满足1NF,并且除了主键关系外的其他列都依赖于该主键,则满足第二范式。

3、 第三范式(3NF)

第三范式是在第二范式的基础上进行的,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关的。其定义是:如果一个关系满足2NF,并且除主键外的其他列都不传递依赖于该主键。

Ø 规范化和性能关系

为了满足三大范式,数据库的性能可能会有一定程度的降低。所以,在实际数据库设计中,我们既要尽量满足三大范式,从而避免数据冗余和各种数据库的操作异常,同时也要考虑数据的访问性能。有时候,为了提高数据库的访问效率,适当的允许少量数据冗余咧存在,才是最适合的数据库设计方案。


分享到:
评论

相关推荐

    SQLServer数据库设计规范.txt

    SQLServer数据库设计规范

    null关系型数据库及SQL语句,SQLSERVER数据库设计.doc

    关系型数据库及SQL语句、SQLSERVER数据库设计 关系型数据库是指使用关系模型来组织和存储数据的数据库。关系型数据库管理系统(RDBMS)使用结构化查询语言(SQL)来管理和操作数据。在这里,我们将详细介绍关系型...

    sql.server.数据库设计与管理 书籍 PDF格式

    在SQL Server数据库设计方面,本书涵盖了关系数据库的基本概念,如实体关系模型(ER模型)、范式理论(第一范式、第二范式、第三范式等)以及规范化设计。此外,书中还详细讲解了如何通过数据建模工具创建和优化...

    SQL Server数据库设计和实现.rar

    本资料“SQL Server数据库设计和实现”涵盖了从理论到实践的全面知识,下面将详细阐述其中涉及的主要知识点。 首先,数据库设计通常包括需求分析、概念设计、逻辑设计和物理设计四个阶段。需求分析要求理解业务需求...

    关系型数据库及SQL语句-SQLSERVER数据库设计与实现210页.doc

    "关系型数据库及SQL语句-SQLSERVER数据库设计与实现" 关系型数据库是一种常用的数据库管理系统,它使用SQL语句来管理和操作数据。在本文中,我们将介绍关系型数据库的基本概念、SQL语句的使用以及SQLSERVER数据库...

    SQL Server 数据库设计与实现

    本文将重点围绕SQL Server数据库,详细介绍其设计、实现以及相关工具的使用。 首先,让我们从概述开始。为什么选择SQL Server?SQL Server是由Microsoft开发的关系型数据库管理系统(RDBMS),它提供了广泛的功能,...

    SQLServer数据库设计与管理

    《SQLServer数据库设计与管理》是一本专注于讲解如何有效地设计、管理和优化SQL Server数据库的专业书籍。在数据库领域,SQL Server以其稳定性和强大的功能被广泛应用于各种业务系统中。本资料涵盖了从基础到高级的...

    sqlserver数据库说明书生成工具

    SQLServer数据库说明书生成工具是一款专为SQLServer数据库设计的实用软件,它能够帮助开发者高效地整理和输出数据库结构信息,极大地提升了编写详细设计说明书的工作效率。这款工具的运行环境需.NET Framework 4.0及...

    SQL Server数据库文档生成器

    SQL Server数据库文档生成器是一款专为SQL Server 2000和SQL Server 2005,以及Access数据库设计的工具,它能够帮助数据库管理员和开发者高效地创建数据表的详细文档。这款软件的主要功能是根据数据库中的数据表及其...

    SqlServer数据库设计与实现

    SqlServer数据库设计与实现 在IT领域,数据库设计与实现是构建高效、稳定的数据管理系统的核心环节。本文将基于“SqlServer数据库设计与实现”这一主题,深入探讨数据库设计的基础知识,涵盖数据库设计与实现的关键...

    sqlserver数据库SSH配置1

    SQLServer 数据库 SSH 配置详解 SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关...

    如何查看sql server数据库连接数

    查看 SQL Server 数据库连接数的多种方法 SQL Server 数据库连接数是一个重要的性能指标,它可以帮助数据库管理员了解当前数据库的工作负载和性能。查看数据库连接数有多种方法,本文将介绍四种不同的方法来查看 ...

    SQLServer数据库设计规范.rar

    主要包括对数据库的设计规范、命名规范、编程结构和描述等等

    报刊订阅管理系统【SQLServer数据库+课程设计文档】

    报刊订阅管理系统【SQLServer数据库+课程设计文档】 1.需求分析 1.1系统需求分析 1.1.1系统调查 1.1.2用户需求 1.1.3 可行性分析 1.1.4系统业务流程图 1.2 系统逻辑方案 1.2.1 数据流图(简称DFD) 1.2.2数据...

    ACCP5.0 SQL Server数据库设计和高级查询 chapter1

    在ACCP5.0课程中,"SQL Server数据库设计和高级查询 chapter1"是一个重要的学习章节,主要关注如何有效地设计数据库以及执行复杂的SQL查询。在这个章节中,学员将接触到SQL Server的基本概念,数据库架构,以及如何...

    MFC连接SQL Server数据库

    MFC连接SQL Server数据库 MFC(Microsoft Foundation Classes)是一种基于C++的应用程序框架,广泛应用于Windows平台的桌面应用程序开发。其中一个重要的应用场景是连接数据库,以便进行数据存储和检索。本文将详细...

    sqlserver数据库设计讲演

    sqlserver数据库设计讲演 新手必看! 扎实基础

    ACCP 4.0 S2 <>

    《SQL Server 数据库设计与实现》是ACCP 4.0 S2阶段的重要学习内容,主要涵盖数据库的基础理论、设计原则以及在SQL Server环境下的实际操作。本篇将深入解析这个主题,帮助读者掌握数据库的核心知识。 首先,数据库...

    北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part1.rar

    北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part1.rar 北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part1.rar

    北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part3.rar

    北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part3.rar 北大青鸟ACCP5.0 S2 SQL Server数据库设计和高级查询(SQL Advance).part3.rar

Global site tag (gtag.js) - Google Analytics