您当前的位置:首页 > 精选问答 > 内容

简述数据库设计过程?数据库设计的基本步骤

本文目录

  • 简述数据库设计过程
  • 数据库设计的基本步骤
  • 数据库设计的步骤有哪些
  • 制作简单数据库应用实例
  • 简述数据库应用系统的设计步骤
  • 数据库设计技巧
  • 数据库设计分哪几个阶段
  • 数据库设计案例分析
  • 数据库如何设计
  • sql数据库设计实例

简述数据库设计过程

数据库设计过程分为以下六个阶段:

1、需求分析阶段

准确理解和分析用户需求(包括数据和处理),它是整个设计过程的基础,也是最困难、最耗时的一步。

2、概念结构设计阶段

是整个数据库设计的关键,通过对用户需求的集成、归纳和抽象,形成了一个独立于特定数据库管理系统的概念模型。

3、逻辑结构设计阶段

将概念结构转换为DBMS支持的数据模型,对其进行优化。

4、数据库物理设计阶段

为逻辑数据模型选择最适合应用程序环境的物理结构(包括存储结构和存取方法)。

5、数据库实现阶段

根据逻辑设计和物理设计的结果,使用数据库管理系统提供的数据语言、工具和主机语言,建立数据库,编写调试应用程序,组织数据仓库,并进行试运行。

6、数据库运行维护阶段

数据库应用系统经试运行后可投入正式运行,在数据库系统运行过程中,需要不断地对其进行评估、调整和修改。

注:在设计过程中,将数据库的设计与数据库中数据处理的设计紧密结合起来,在每个阶段同时对这两个方面的要求进行分析、抽象、设计和实现,相互借鉴和补充,从而完善这两个方面的设计。

扩展资料:

数据库设计技术

1、清晰的用户需求:作为计算机软件开发的重要基础,数据库设计直接反映了用户的需求。数据库必须与用户紧密沟通,紧密结合用户需求。在定义了用户开发需求之后,设计人员还需要反映具体的业务关系和流程。

2、注意数据维护:设计面积过大、数据过于复杂是数据库设计中常见的问题,设计人员应注意数据维护。

3、增加命名规范化:命名数据库程序和文件非常重要,不仅要避免重复的名称,还要确保数据处于平衡状态。为了降低检索信息和资源的复杂度和难度,设计人员应了解数据库程序与文件之间的关系,并灵活使用大小写字母命名。

4、充分考虑数据库的优化和效率:考虑到数据库的优化和效率,设计人员需要对不同表的存储数据采用不同的设计方法。在设计中,还应该使用最少的表和最弱的关系来实现海量数据的存储。

5、不断调整数据之间的关系:不断调整和简化数据之间的关系,可以有效减少设计与数据之间的联系,进而为维护数据之间的平衡和提高数据读取效率提供保障。

6、合理使用索引:数据库索引通常分为聚集索引和非聚集索引,这样可以提高数据搜索的效率。

参考资料来源:百度百科-数据库设计

数据库设计的基本步骤

数据库设计的基本步骤如下:

1、安装并打开MySQL WorkBench软件以后,在软件的左侧边栏有三个选项,分别是对应“连接数据库”、“设计数据库”、“迁移数据库”的功能。这类选择第二项,设计数据库,点击右边的“+”号,创建models。

2、进入MySQL Model界面后,点击“Add Diagram“。

3、然后就进入了EER Diagram的设计页面。可以从左侧的图标中选择要创建的资源。鼠标停留在图标上3秒后,会提示资源的类型。选择资源后,可以在设计页面上方选择属性。

4、这里添加了一张数据库表,添加后,双击,在页面的底部会出现数据库表的编辑框。

5、这里创建一张user表,设置了id、name、age三列。

6、还可以创建外键,左侧提供了四种外键类型。点击后,只需要用鼠标分别选中要关联的两个表即可。Workbench会自动生成对应的外键。

7、在文件、导出中,可以选择导出为sql脚本。

8、下图是导出过程sql脚本的过程。

数据库设计的步骤有哪些

数据库的设计过程大致可分为以下六个阶段:

1. 需求分析阶段

需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。

2. 概念结构设计阶段

通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。

3. 逻辑结构设计阶段

将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。

4. 数据库物理设计阶段

为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

5. 数据库实施阶段

运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

6. 数据库运行和维护阶段

数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

制作简单数据库应用实例

一、为交通管理部门设计数据库。(交通管理部门管理若干的车主信息,每个车主可以拥有多辆车,每辆车可能有若干次事故记录。)二利用数据库设计的方法和步骤,为交通管理部门设计数据库和必要的索引、视图。三、进行需求分析作出数据流图四、进行概念结构设计作出E-R图五、进行逻辑结构设计设计出关系模式,判断出采用那一级范式六、用SQL语言建立关系模式七、设计必要的索引和视图 某种“数据库技术”课程的作业吧把表的结构提供给你,其它的最好看看书自己做吧车主(车主ID,...)汽车(汽车ID,...,所属车主ID)事故(事故ID,...,所属汽车ID)所有的主ID应该有索引,车主姓名和车牌号也可以有索引视图:车主与汽车的连立,车主、汽车与事故的连立E-R图就是三大区域,中间有两个1:n连接这是3NF范式(主外码连接无冗余)还望楼主采纳

简述数据库应用系统的设计步骤

数据库设计的基本步骤:

1、系统需求分析与设计。

2、概念结构分析与设计。

3、逻辑结构分析与设计。

4、物理结构分析与设计。

5、系统实施。

6、系统维护。

扩展资料:

数据库设计技巧:

1、原始文件与实体的关系

它可以是一对一,一对多,多对多的关系。一般来说,它们是一对一的关系:一个原始文档只对应于一个实体。在特殊情况下,它们可以是一对多或多对一关系,即一个原始文档对应于多个实体,或者多个原始文档对应于一个实体。

这里的实体可以理解为基本表。在对应关系明确后,对输入接口的设计非常有利。

2、主键和外键

一般来说,实体不能既没有主键也没有外键。在E-R图中,叶中的实体可以定义主键或不定义主键(因为它没有子代),但它必须有外键(因为它有父项)。

主键和外键的设计在全局数据库的设计中起着重要的作用。当全球数据库的设计完成后,一位美国数据库设计专家说:“钥匙无处不在,只有钥匙。”。这是他数据库设计的经验,也体现了他对信息系统核心(数据模型)高度抽象的理念。

因为:主键是一个高度抽象的实体。主键和外键的配对表示实体之间的连接。

3、基本表的属性

基本表不同于中间表和临时表,因为它具有以下四个特点:

原子性。基本表中的字段不可分解。

原始主义。基本表中的记录是原始数据(基本数据)的记录。

演绎的。所有输出数据都可以从基本表和代码表中的数据导出。

稳定。基本表的结构比较稳定,表中的记录要长期保存。

在了解基本表的性质之后,在设计数据库时,可以将基本表与中间表和临时表区分开来。

参考资料来源:百度百科-数据库设计

数据库设计技巧

就我个人的经验来说,数据库虽然在设计上确实需要有一定的经验,但是它并不是最难的。对于数据的设计其实是对于现实中业务的一种抽象。就我的习惯的话,我会先对于现实中的业务场景、业务的角色进行分析。就拿一般的进销存系统来举例吧。我有一个对于物料管理的仓库,我需要对我的物料的进销存进行管理。那么我们就需要分析,没有系统的时候,人与人之间的业务是怎么流转的,他们都是通过哪些表单来进行流转的,上下级之间的消息传递和反馈都是怎么进行的。当知道了业务以后,我们的数据库无非就是对于现实中的业务的一种具现。对于业务的设计完成以后,就是针对角色的了。例如:业务的传递都是在业务人员之间的,我们已经整理表单的传递,那角色其实就已经在这些传递中存在了。但是,业务的角色是业务的角色,我们还要包括财务的角色,那对于财务来说,他需要在哪些环节看到这些业务的单据?并且需要怎么处理?财务的处理结果又包括哪些?不同的处理结果对于下一步的操作又有什么影响。当我们把这一切的逻辑整理完成后,我们对于数据库的功能上就已经满足了。接下来的就是抽象数据的分类了。例如:我们需要对不同的表进行一个分类,我个人喜欢把表分成三种,一种是基础数据表,一种是过程表,一种是结果表。怎么解释呢?基础数据表:顾名思义,就是对于基础数据的维护,哪些可以成为基础数据呢?就是我们的业务发生的各个过程中,这些数据都是可以参与其中的,这就是基础数据。例如:货物的信息,客户的信息。过程表:就是仅仅在一个过程中使用的表,当这个过程结束了,这个表就没用了。例如:订单表,付款单表。他们表示的仅仅是订单从下单到最后关闭的这个过程,关闭以后,这个订单表其实我们就不会再去使用它了。结果表:这个表的数据有一个特点,只允许添加,不允许删除和修改,这个表的数据本身就是对于一种最终结果的表现。例如:日志表、账单表。那我们在进行数据库设计的时候,就需要将这些使用情况考虑进去,将不同功能的表进行分离,尽量降低耦合,让相互表的修改不会影响使用。例如:收款单,我们需要收一笔款的时候,就会生成这个收款单,当款收到后,这个收款单的功能就结束了。但现实的情况中,可能财务收到了这笔钱,结束了收款单流程后,他发现填错了,本来应该收100,结果收款单写的110。但是,收款单表示的是过程,当这个过程结束了,我们就不会再需要上一个收款单了,所以,按照我们业务的处理流程,我们应该先生成一笔冲抵的收款单,例如收到-110,然后再生成新的100的收款单。我们每个月还会有财务统计报表,财务报表因为和现实中的财务账有关,是绝对不允许变动的,因此,这个财务报表就是一个结果表,我们会按月通过批处理程序,将收款单的明细和统计数据放到另一张表中,感觉好像比较冗余,但是这个确实非常必要的。因为我曾经就遇到过一个情况,我们直接用过程表来进行数据的统计,然后11月30日有一笔收款已经完成了,结果发现收错了,就重新做了个收款单,结果本来已经出了11月结果的账单发生了变化,导致财务实际的处理出现了问题。因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。

数据库设计分哪几个阶段

按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段。

1、需求分析:分析用户的需求,包括数据、功能和性能需求

2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图

3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换

4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径

5、数据库的实施:包括编程、测试和试运行

6、数据库运行与维护:系统的运行与数据库的日常维护

扩展资料:

设计原则

1、一对一设计原则

在软件开发过程中,需要遵循一对一关系设计原则进而开展数据维护工作,通过利用此原则能够尽量减少维护问题的出现,保证数据维护工作顺利开展同时降低维护工作难度。

2、独特命名原则

独特命名原则的应用是为了减少在数据库设计过程中出现重复命名和规范命名现象出现。

3、双向使用原则

双向使用原则包括:事务使用原则和索引功能原则,软件市场常见的索引模式有:多行检索聚簇索引和单行检索非聚簇索引。 

参考资料来源:百度百科-数据库设计

数据库设计案例分析

’使用方法,在打开窗体时用opendb即可,关闭用closedb,数据库文件你修改dbname变量’表操作 打开 openrs 1,“select * from ...“ 关闭 closers 1我写了四个表操作变量,1234,你自己看着理解,你要会SQl语句,要不这也没有什么用。’数据库连接:放在一个模块里里面Public Const DBName = “FoxData.mdb“Public Const DBpass = ““Public conn As New ADODB.ConnectionPublic Rs1 As New ADODB.RecordsetPublic Rs2 As New ADODB.RecordsetPublic Rs3 As New ADODB.RecordsetPublic Rs4 As New ADODB.RecordsetPublic Sub OpenDB()Dim DBpath As StringDBpath = App.Path + “\“ + DBNameconn.Open “provider=Microsoft.Jet.oledb.4.0;data source=“ & DBpath & “;Jet OLEDB:Database Password=“ & DBpass & “;“End Sub’******************************************’关闭数据库Public Sub CloseDB()On Error Resume Nextconn.CloseSet conn = NothingEnd SubPublic Sub OpenRs(ByVal RsNum As Integer, ByVal RsSql As String)Select Case RsNumCase 1: Rs1.Open RsSql, conn, adOpenKeyset, adLockPessimisticCase 2: Rs2.Open RsSql, conn, adOpenKeyset, adLockPessimisticCase 3: Rs3.Open RsSql, conn, adOpenKeyset, adLockPessimisticCase 4: Rs4.Open RsSql, conn, adOpenKeyset, adLockPessimisticEnd SelectEnd SubPublic Sub CloseRs(ByVal RsNum As Integer)Select Case RsNumCase 1: Rs1.Close: Set Rs1 = NothingCase 2: Rs2.Close: Set Rs2 = NothingCase 3: Rs3.Close: Set Rs3 = NothingCase 4: Rs4.Close: Set Rs4 = NothingEnd SelectEnd Sub

数据库如何设计

数据库设计的基本步骤

按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段

1.需求分析

2.概念结构设计

3.逻辑结构设计

4.物理结构设计

5.数据库实施

6.数据库的运行和维护

 

数据库设计通常分为6个阶段1分析用户的需求,包括数据、功能和性能需求;2概念结构设计:主要采用E-R模型进行设计,包括画E-R图;3逻辑结构设计:通过将转换成表,实现从E-R模型到关系模型的转换;4:主要是为所设计的数据库选择合适的和存取路径;5数据库的实施:包括编程、测试和试运行;6数据库运行与维护:系统的运行与数据库的日常维护。),主要讨论其中的第3个阶段,即逻辑设计。 

在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DAMS密切相关。

 

1.需求分析阶段(常用自顶向下)

      进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。

      需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。

     调查的重点是,数据与处理。达到信息要求,处理要求,安全性和完整性要求。

     分析方法常用SA(Structured  Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。

      数据流图表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若干层次的数据流图。系统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。

 

2.概念结构设计阶段(常用自底向上)

       概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型。

      设计概念结构通常有四类方法:

  • 自顶向下。即首先定义全局概念结构的框架,再逐步细化。

  • 自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。

  • 逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。

  • 混合策略。即自顶向下和自底向上相结合。

  • 3.逻辑结构设计阶段(E-R图)

    逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。

    在这阶段,E-R图显得异常重要。大家要学会各个实体定义的属性来画出总体的E-R图。

    各分E-R图之间的冲突主要有三类:属性冲突,命名冲突,和结构冲突。

    E-R图向关系模型的转换,要解决的问题是如何将实体性和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。

    4.物理设计阶段

    物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

    首先要对运行的事务详细分析,获得选择物理数据库设计所需要的参数,其次,要充分了解所用的RDBMS的内部特征,特别是系统提供的存取方法和存储结构。

    常用的存取方法有三类:1.索引方法,目前主要是B+树索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。

    5.数据库实施阶段

    数据库实施阶段,设计人员运营DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。

    6.数据库运行和维护阶段

    数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价,调整,修改。

    数据库设计5步骤Five Steps to design the Database

    1.确定entities及relationships

    a)    明确宏观行为。数据库是用来做什么的?比如,管理雇员的信息。

    b)    确定entities。对于一系列的行为,确定所管理信息所涉及到的主题范围。这将变成table。比如,雇用员工,指定具体部门,确定技能等级。

    c)    确定relationships。分析行为,确定tables之间有何种关系。比如,部门与雇员之间存在一种关系。给这种关系命名。

    d)    细化行为。从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。比如,管理雇员的信息可细化为:

    ·         增加新员工

    ·         修改存在员工信息

    ·         删除调走的员工

    e)    确定业务规则。分析业务规则,确定你要采取哪种。比如,可能有这样一种规则,一个部门有且只能有一个部门领导。这些规则将被设计到数据库的结构中。

    ====================================================================范例:ACME是一个小公司,在5个地方都设有办事处。当前,有75名员工。公司准备快速扩大规模,划分了9个部门,每个部门都有其领导。为有助于寻求新的员工,人事部门规划了68种技能,为将来人事管理作好准备。员工被招进时,每一种技能的专业等级都被确定。

    定义宏观行为一些ACME公司的宏观行为包括:● 招聘员工● 解雇员工● 管理员工个人信息● 管理公司所需的技能信息● 管理哪位员工有哪些技能● 管理部门信息● 管理办事处信息确定entities及relationships我们可以确定要存放信息的主题领域(表)及其关系,并创建一个基于宏观行为及描述的图表。我们用方框来代表table,用菱形代表relationship。我们可以确定哪些relationship是一对多,一对一,及多对多。这是一个E-R草图,以后会细化。

    细化宏观行为以下微观行为基于上面宏观行为而形成:● 增加或删除一个员工● 增加或删除一个办事处● 列出一个部门中的所有员工● 增加一项技能● 增加一个员工的一项技能● 确定一个员工的技能● 确定一个员工每项技能的等级● 确定所有拥有相同等级的某项技能的员工● 修改员工的技能等级这些微观行为可用来确定需要哪些table或relationship。确定业务规则业务规则常用于确定一对多,一对一,及多对多关系。相关的业务规则可能有:● 现在有5个办事处;最多允许扩展到10个。● 员工可以改变部门或办事处● 每个部门有一个部门领导● 每个办事处至多有3个电话号码● 每个电话号码有一个或多个扩展● 员工被招进时,每一种技能的专业等级都被确定。● 每位员工拥有3到20个技能● 某位员工可能被安排在一个办事处,也可能不安排办事处。

    2.确定所需数据

    要确定所需数据:

    a)    确定支持数据

    b)    列出所要跟踪的所有数据。描述table(主题)的数据回答这些问题:谁,什么,哪里,何时,以及为什么

    c)    为每个table建立数据

    d)    列出每个table目前看起来合适的可用数据

    e)    为每个relationship设置数据

    f)    如果有,为每个relationship列出适用的数据

    确定支持数据你所确定的支持数据将会成为table中的字段名。比如,下列数据将适用于表Employee,表Skill,表Expert In。

    Employee

  •    
  • Skill

  •    
  • Expert In

  •    
  • ID

  •    
  • ID

  •    
  • Level

  •    
  • Last Name

  •    
  • Name

  •    
  • Date acquired

  •    
  • First Name

  •    
  • Description

  •    
  •    
  • Department

  •    
  •    
  •    
  • Office

  •    
  •    
  •    
  • Address

  •    
  •    
  •    
  • 如果将这些数据画成图表,就像:

  •  
  • 需要注意: 
  • ● 在确定支持数据时,请一定要参考你之前所确定的宏观行为,以清楚如何利用这些数据。 
  • ● 比如,如果你知道你需要所有员工的按姓氏排序的列表,确保你将支持数据分解为名字与姓氏,这比简单地提供一个名字会更好。 
  • ● 你所选择的名称最好保持一致性。这将更易于维护数据库,也更易于阅读所输出的报表。 
  • ● 比如,如果你在某些地方用了一个缩写名称Emp_status,你就不应该在另外一个地方使用全名(Empolyee_ID)。相反,这些名称应当是Emp_status及Emp_id。 
  • ● 数据是否与正确的table相对应无关紧要,你可以根据自己的喜好来定。在下节中,你会通过测试对此作出判断。
  • 3.标准化数据

    标准化是你用以消除数据冗余及确保数据与正确的table或relationship相关联的一系列测试。共有5个测试。本节中,我们将讨论经常使用的3个。关于标准化测试的更多信息,请参考有关数据库设计的书籍。标准化格式标准化格式是标准化数据的常用测试方式。你的数据通过第一遍测试后,就被认为是达到第一标准化格式;通过第二遍测试,达到第二标准化格式;通过第三遍测试,达到第三标准化格式。如何标准格式:1. 列出数据2. 为每个表确定至少一个键。每个表必须有一个主键。3. 确定relationships的键。relationships的键是连接两个表的键。4. 检查支持数据列表中的计算数据。计算数据通常不保存在数据库中。5. 将数据放在第一遍的标准化格式中:6. 从tables及relationships除去重复的数据。7. 以你所除去数据创建一个或更多的tables及relationships。8. 将数据放在第二遍的标准化格式中:9. 用多于一个以上的键确定tables及relationships。10. 除去只依赖于键一部分的数据。11. 以你所除去数据创建一个或更多的tables及relationships。12. 将数据放在第三遍的标准化格式中:13. 除去那些依赖于tables或relationships中其他数据,并且不是键的数据。14. 以你所除去数据创建一个或更多的tables及relationships。数据与键在你开始标准化(测试数据)前,简单地列出数据,并为每张表确定一个唯一的主键。这个键可以由一个字段或几个字段(连锁键)组成。主键是一张表中唯一区分各行的一组字段。Employee表的主键是Employee ID字段。Works In relationship中的主键包括Office Code及Employee ID字段。给数据库中每一relationship给出一个键,从其所连接的每一个table中抽取其键产生。

    RelationShip

  •    
  • Key

  •    
  • Office

  •    
  • *Office code

  •    
  •    
  • Office address

  •    
  •    
  • Phone number

  •    
  • Works in

  •    
  • *Office code

  •    
  •    
  • *Employee ID

  •    
  • Department

  •    
  • *Department ID

  •    
  •    
  • Department name

  •    
  • Heads

  •    
  • *Department ID

  •    
  •    
  • *Employee ID

  •    
  • Assoc with

  •    
  • *Department ID

  •    
  •    
  • *EmployeeID

  •    
  • Skill

  •    
  • *Skill ID

  •    
  •    
  • Skill name

  •    
  •    
  • Skill description

  •    
  • Expert In

  •    
  • *Skill ID

  •    
  •    
  • *Employee ID

  •    
  •    
  • Skill level

  •    
  •    
  • Date acquired

  •    
  • Employee

  •    
  • *Employee ID

  •    
  •    
  • Last Name

  •    
  •    
  • First Name

  •    
  •    
  • Social security number

  •    
  •    
  • Employee street

  •    
  •    
  • Employee city

  •    
  •    
  • Employee state

  •    
  •    
  • Employee phone

  •    
  •    
  • Date of birth

  •    
  • 将数据放在第一遍的标准化格式中● 除去重复的组● 要测试第一遍标准化格式,除去重复的组,并将它们放进他们各自的一张表中。● 在下面的例子中,Phone Number可以重复。(一个工作人员可以有多于一个的电话号码。)将重复的组除去,创建一个名为Telephone的新表。在Telephone与Office创建一个名为Associated With的relationship。将数据放在第二遍的标准化格式中● 除去那些不依赖于整个键的数据。● 只看那些有一个以上键的tables及relationships。要测试第二遍标准化格式,除去那些不依赖于整个键的任何数据(组成键的所有字段)。● 在此例中,原Employee表有一个由两个字段组成的键。一些数据不依赖于整个键;例如,department name只依赖于其中一个键(Department ID)。因此,Department ID,其他Employee数据并不依赖于它,应移至一个名为Department的新表中,并为Employee及Department建立一个名为Assigned To的relationship。

    将数据放在第三遍的标准化格式中● 除去那些不直接依赖于键的数据。● 要测试第三遍标准化格式,除去那些不是直接依赖于键,而是依赖于其他数据的数据。● 在此例中,原Employee表有依赖于其键(Employee ID)的数据。然而,office location及office phone依赖于其他字段,即Office Code。它们不直接依赖于Employee ID键。将这组数据,包括Office Code,移至一个名为Office的新表中,并为Employee及Office建立一个名为Works In的relationship。

    4.考量关系

    当你完成标准化进程后,你的设计已经差不多完成了。你所需要做的,就是考量关系。考量带有数据的关系你的一些relationship可能集含有数据。这经常发生在多对多的关系中。遇到这种情况,将relationship转化为一个table。relationship的键依旧成为table中的键。考量没有数据的关系要实现没有数据的关系,你需要定义外部键。外部键是含有另外一个表中主键的一个或多个字段。外部键使你能同时连接多表数据。有一些基本原则能帮助你决定将这些键放在哪里:一对多 在一对多关系中,“一”中的主键放在“多”中。此例中,外部键放在Employee表中。一对一 在一对一关系中,外部键可以放进任一表中。如果必须要放在某一边,而不能放在另一边,应该放在必须的一边。此例中,外部键(Head ID)在Department表中,因为这是必需的。多对多 在多对多关系中,用两个外部键来创建一个新表。已存的旧表通过这个新表来发生联系。

    5.检验设计

    在你完成设计之前,你需要确保它满足你的需要。检查你在一开始时所定义的行为,确认你可以获取行为所需要的所有数据:● 你能找到一个路径来等到你所需要的所有信息吗?● 设计是否满足了你的需要?● 所有需要的数据都可用吗?如果你对以上的问题都回答是,你已经差不多完成设计了。最终设计最终设计看起来就像这样:设计数据库的表属性数据库设计需要确定有什么表,每张表有什么字段。此节讨论如何指定各字段的属性。对于每一字段,你必须决定字段名,数据类型及大小,是否允许NULL值,以及你是否希望数据库限制字段中所允许的值。选择字段名字段名可以是字母、数字或符号的任意组合。然而,如果字段名包括了字母、数字或下划线、或并不以字母打头,或者它是个关键字(详见关键字表),那么当使用字段名称时,必须用双引号括起来。为字段选择数据类型SQL Anywhere支持的数据类型包括:整数(int, integer, smallint)小数(decimal, numeric)浮点数(float, double)字符型(char, varchar, long varchar)二进制数据类型(binary, long binary)日期/时间类型(date, time, timestamp)用户自定义类型关于数据类型的内容,请参见“SQL Anywhere数据类型”一节。字段的数据类型影响字段的最大尺寸。例如,如果你指定SMALLINT,此字段可以容纳32,767的整数。INTEGER可以容纳2,147,483,647的整数。对CHAR来讲,字段的最大值必须指定。长二进制的数据类型可用来在数据库中保存例如图像(如位图)或者文字编辑文档。这些类型的信息通常被称为二进制大型对象,或者BLOBS。关于每一数据类型的完整描述,见“SQL Anywhere数据类型”。

sql数据库设计实例

数据库技术是信息资源开发、管理和服务的最有效的手段。随着计算机技术、通信技术和网络技术的发展,数据库的应用范围越来越广泛,已渗透到社会的各个领域。从小型的单项事务处理系统到大型复杂的信息系统大都采用先进的数据库技术来保持系统数据的整体性、完整性和共享性。目前,数据库的建设规模、数据库信息的大小和使用频度已成为衡量一个国家或地区信息化程度的重要标识之一。 数据库设计时间里数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要去)。 在数据库领域内,使用数据库的各类系统通常被称为数据库应用系统。数据库技术和产品是计算机领域中最为活跃的部分之一,数据库技术与产品的发展总是与计算机技术的发展密切相关,从主机到现在的Internet/Intranet及网络计算。数据库总是站在技术的最前沿。 本系统采用了SQL SERVER 2008数据库作为后台数据库,SQL SERVER 2008是一个真正的多用户、多线程SQL数据库服务器。 3.2 库表概要设计 共分为以下四个数据库表: (1) 用户登陆信息表: Logintable (2) 客户资料表:nomalpeopletable (3) 员工信息表: workpeopletable (4) 购买商品表:ordertable (5) 全国城市表:Citytable (6) 食品信息表:Goodstable Logintable(登录验证表) 列名 数据类型 是否可以为空 备注 controllerId int 不 管理员工号 Password nvarchar(50) 不 登录密码 Type Int 不 1为普通管理员;2为高级管理员 Clienttable(客户信息表) 列名 数据类型 是否可以为空 备注 clientName nvarchar(50) 不 客户名称 clientOriginId Int 不 客户来源(外键对应controllertable中,controllerId) clientSort nvarchar(50) 不 客户类别(可选内容为工程商、代理商、工程甲方) clientCity nvarchar(50) 不 所在区域(可选框,全国的各个城市) clientPhone nvarchar(50) 不 联系电话 clientprincipal nvarchar(50) 不 联系人 clientMobile nvarchar(50) 可以 手机 clientAddress nvarchar(50) 不 联系地址 controllertable(员工信息表) 列名 数据类型 是否可以为空 备注 controllerId int 不 管理员工号,随机数 name nvarchar(50) 不 员工姓名 sex Char 不 员工性别 study Char 不 员工学历 worktime nvarchar(50) 不 从业时间 purchasetable(客户购买商品表) 列名 数据类型 是否可以为空 备注 Id Int 不 主键自增 clientName nvarchar(50) 不 企业名称 Money Money 不 购买金额 Time nvarchar(50) 不 购买时间 controllerId Int 不 (所属管理员)外键对应controllertable中,controllerId Text nvarchar(50) 不 产品名称 citytable(全国城市表) 列名 数据类型 是否可以为空 备注 Id Int 不 主键自增 City nvarchar(50) 不 城市名(如:安徽合肥) goodsTable(物品信息表) 列名 数据类型 是否可以为空 备注 Id Int 不 主键自增 Shopname nvarchar(50) 不 物品名称 unitprice Money 不 物品单价 不懂问我!我很在行的!~


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: vue框架大概要学多久(学习vue到用vue搭建框架需要多久)

下一篇: helpful(helpful与help有什么区别)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号