新闻详细
新闻当前位置:新闻详细

数据库技术参数设计包括什么阶段,「技术解惑」数据库设计的那些事

专业大数据挖掘分析——助力小微企业发现价值

电话+V: 152079-09430 ,欢迎咨询数据库技术参数设计包括什么阶段,「技术解惑」数据库设计的那些事D2074708-43D6-406f-8C17-B2D4AA980CC6,[大数据挖掘与分析],[大数据应用场景建设],[大数据接口共享],[大数据去除冗余],[大数据精准推送],[大数据广告价值],[助力小微企业成长更上台阶]

一、请问数据库的设计阶段是哪几个?

一、数据库设计阶段:

1.需求分析阶段

2.概念结构设计阶段

3.逻辑结构设计阶段

4.物理设计阶段

5.数据库实施阶段

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

二、

  需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段独立于数据库管理系统;

二、数据库设计阶段包括哪五个阶段?

数据库设计阶段包括五个阶段,分别是:

需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理设计阶段、数据库实施阶段、数据库运维阶段。

独立于数据库管理系统的是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段。

数据库管理系统依赖于:实施阶段、运维阶段。

数据库设计是建立数据库及其应用系统的技术,是信息系统开发与建设的核心技术。由于数据库应用系统的复杂性,为了支持相关程序的运行,数据库的设计变得极其复杂。

因此最好的设计不可能一蹴而就,而只能是一个“反复探索和细化”的过程,即对结构化数据库中的数据对象以及这些数据对象之间的关系进行规划的过程。

扩展资料:

形成过程

1.需求分析阶段:整合每个用户的应用需求(数据流程图(DFD))。

2.概念设计阶段:形成一个独立于机器特征和DBMS产品的概念模式(e-r图)。

3.逻辑设计阶段:首先,将e-r图转换为特定数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理要求,安全考虑,在基本表的基础上建立必要的视图(视图),形成数据外模式。

4.物理设计阶段:根据DBMS的特点和需要进行处理,物理存储安排,建立索引,形成数据库模式。

「技术解惑」数据库设计的那些事

原创2021-04-2712:02·葡萄城GrapeCity

良好的数据库设计能够为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,满足各种用户的需求,并对应用程序的信息管理和数据操作产生重要的影响。作为整个项目搭建中最为复杂的过程,设计出一个良好的数据库结构并不是一件简单的事:

  • 对于小型项目而言,业务需求更易理解。因此,数据库设计者直接就能给出要构建的关系、关系的属性以及其上的约束。
  • 对于复杂的、大型应用而言,业务逻辑往往层层嵌套,通常没有一个人能够理解应用所有的数据需求并直接给出最终的数据库设计。
  • 可见,掌握一门数据库设计的方法对于项目搭建而言还是非常必要的。本期葡萄城公开课,我们特别邀请到了《精通SQLServer》的作者——罗会涛先生,就数据库设计的入门概念、实体关系设计、SQL语句等基础知识进行讲解,结合实际案例,让你秒变数据库设计大神。

    一、数据库设计的特点基本概念

    数据库是指按照数据结构来组织、存储和管理数据的仓库。

    数据库基本结构

    数据库一般按照数据模型、存储和访问方式,以及用途进行分类。

    按数据模型划分:

  • 层次结构模型
  • 网状结构模型
  • 关系结构模型
  • 按存储和访问方式划分:

  • 关系型桌面型:SQLite,MSAccess网络型:Oracle,MySQL,MSSQLServer
  • 非关系型键值数据库:AmazonDynamo列式数据库:Hbase文档数据库:MongoDB图形数据库:Neo4j
  • 按用途划分:

  • OLTP数据库
  • 讲究事务完整性ACID
  • OLAP数据库
  • 数据仓库
  • 基本只读
  • 不管是什么类型的数据库结构,在设计数据库时,都会遵循以下基本规律:三分技术、七分管理和十二分基础数据。其中,管理指的是数据库设计的项目管理和企业(即应用部门)的业务管理;基础数据指的是针对数据收集、入库和更新的动作。

    对于常见数据库而言,设计过程包括以下阶段:

  • 完整的刻画未来数据库用户的数据需求
  • 选择数据模型,并采用所选数据模型的概念将需求转化为数据库的概念模式
  • 将抽象数据模型转化为数据库实现:
  • 逻辑设计:将高层概念模式映射到将使用的数据库系统的实现数据库模型
  • 物理设计:指明数据库的物理特征,包括文件组织格式和索引结构的选择
  • 下面,我们将以关系型数据库为例,讲解数据库的实体关系设计以及SQL语句执行。本期课程,对于刻画用户的数据需求和物理设计并不会过多的介绍。因为数据需求来自于需求分析,这在软件工程中是一个很大的过程;而物理设计和所选择的DBMS有着很大的关系。

    二、关系型数据库中的基本概念

    表(Table):表是数据的有序排列,强调其数据必须按照行和列排成一个矩形。

    行(Row):=记录(Record)

    列(Column):=字段或属性

    主键(PrimaryKey,简称PK):被挑选出来,作表的行的惟一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。主键存在的目的是为保证实体的完整性。

    外键(ForeignKey,简称FK):外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束。外键用来建立和加强两个表数据之间的连接,用来保证参照完整性/引用完整性。

    三、实体关系模型

    实体关系模型(Entity-relationshipmodel,简称ER模型)由美籍华裔计算机科学家陈品山发明,是概念数据模型的高层描述所使用的数据模型或模式图。ER模型常用于信息系统设计中;在概念结构设计阶段用来描述信息需求和/或要存储在数据库中的信息的类型。

    在基于数据库的信息系统设计的情况下,在逻辑设计阶段,概念模型要映射到逻辑模型如关系模型上;在物理设计期间映射到物理模型上。

    对于实体关系,有一个非常普遍的错误概念,即认为关系指表之间的关系。实际上,关系与表这个术语几乎是同义词。

    实体关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体,如:

    1、一对一:一个班主任只属于一个班级,一个班级也只能有一个班主任

  • 应用场景:适用于属性过多的实体,但不希望单个表有过多字段,如人员基本信息、人员档案信息
  • 不够全面,特殊条件如班级中途更换班主任等无法满足
  • 2、一对多:一个顾客对应多个订单,而一个订单只能对应一个客户

    3、多对多:一个学生有多个课程的成绩,一个课程也有多个学生来上

    四、业务系统数据库表设计步骤

    实现从编码数据表(MasterTable)到业务数据表(TransactionTable)的转变。

    1、编码数据表(MasterTable)

  • 数据库设计之初设计
  • 目的是捕捉系统中的实体对象
  • 设计Master表就是描述系统中的实体。如:用户、会计科目、客户等
  • 2、业务数据表(TransactionTable)

  • 一笔业务(或称一笔交易)是指Master表中的实体在系统中的一个活动
  • 这些活动会被捕捉(记录)到业务数据表中
  • 一般地,业务数据表都有指向(引用)Master表的外键
  • 五、典型数据库表设计

    了解了数据库的基本概念,我们来看几张典型的数据库表。

    成绩单:

    1、Master表

  • 年级:年级编码、名称
  • 班级:班级编码、名称、年级编码
  • 学生:学号、姓名、性别
  • 考试科目:编码、名称
  • 达线情况:不需要
  • 考试:不易识别的实体
  • 编码、考试名、日期
  • 2、Transaction表:成绩表

  • 考试编码、学号、科目编码、分数
  • 不要【语文】【数学】字段
  • 不要【总分】字段
  • 销售订单:

    1、Master表

  • 客户,用户(制单人),业务员
  • 不易识别:部门
  • 商品
  • 2、Transaction表

    订单头表

  • 订单编号(主键)、日期
  • 客户ID,制单人(用户),业务员ID
  • 不易识别:订单状态(订购,发货,完成)
  • 不宜判断:合计金额
  • 订单行表

  • 订单编号、行号(多字段组合主键)
  • 商品ID,数量,单价
  • 金额:不要
  • 工资表:

    1、Master表

  • 员工,部门
  • 数据类型,工资项目
  • 工资表模板,工资表模板项目
  • 2、Transaction表

    工资表

  • 工资表ID(主键)、年月
  • 模板ID
  • 状态(已发放=不能修改)
  • 工资表数据

  • 记录ID(主键)
  • 工资表ID,员工ID,工资项目ID(唯一索引)
  • 年月(可选)
  • 工资项目数据数值
  • 工资项目数据文本
  • 工资项目数据日期
  • 六、范式标准

    范式(NormalForm,缩写为NF),数据库设计一般分为六种范式类型,越高的范式代表数据库冗余越小,且高级范式包含了低级范式的要求。

    数据库设计之所以要遵循范式,是为了确保数据库简洁、结构明晰,且不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之,不遵循范式要求的数据库设计,不仅会给编程人员制造麻烦,还可能存储大量不需要的冗余信息。

    在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):

    第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;

    第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

    第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

    一般来说,数据库只需满足第三范式(3NF)就行了。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。

    举例,对一张存放商品的基本表来说。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。

    七、SQL语句相关知识

    结构化查询语言(StructuredQueryLanguage,简称SQL)是一种用于数据库查询和程序设计的编程语言,可以存取数据以及管理关系数据库系统。

    SQL语句分类:

    1、数据定义语言

  • DDL(DataDefinitionLanguage)
  • 用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,如:表、视图等等
  • DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。
  • 2、数据操控语言

  • DML(DataManipulationLanguage)
  • 用于操作数据库对象中包含的数据,也就是说操作的单位是记录。
  • 增删改查=CRUD:增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)
  • C=Insert,R=Select,U=Update,D=Delete
  • 3、数据控制语言

  • DCL(DataControlLanguage)
  • 用于控制数据库对象的权限,这些操作使数据更加的安全。
  • Grant:给某用户或某组或所有用户授予某些特定的权限。
  • Revoke:废除某用户或某组或所有用户的特定权限
  • SQL语句元素(CRUD):

    1、INSERT(添加新记录)

  • 添加单条记录:Insertintotablename(column1,column2…)Values(1,'string’…)
  • 批量添加记录:Insertintotablename(column1,column2…)Select…
  • 2、Select(获取数据行)

  • Topn(指定最多返回多少行记录)
  • WITHTIES(指定是否将末尾并列排序的额外记录也一并返回)
  • INTO(创建一个新表,并把查询结果的记录插入表中)
  • FROM(指定从哪里查询数据)
  • 3、JOIN

  • WHERE
  • BETWEEN
  • LIKE
  • IN
  • 4、聚合函数

  • AVG=取平均值
  • MAX=取最大值
  • MIN=取最小值
  • COUNT=取记录条数
  • SUM=取合计值
  • 表之外的数据库对象:

  • 视图:保存下来以便反复使用的SELECT查询
  • 存储过程:保存下来以便反复使用的CRUD查询
  • 触发器:一种特殊的存储过程,对表进行增删改时自动执行
  • 自定义函数:函数类似存储过程,但是必须有返回值,且可直接用于FROM子句
  • 八、提高数据库运行效率的办法

    在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是:

  • 在数据库物理设计时,降低范式,增加冗余,少用触发器,多用存储过程。
  • 当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C++语言计算处理完成之后,最后才入库追加到表中去。这是电信计费系统设计的经验。
  • 发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。
  • 对数据库管理系统DBMS进行系统优化,即优化各种系统参数,如缓冲区个数。
  • 在使用面向数据的SQL语言进行程序设计时,尽量采取优化算法。
  • 以上就是本期公开课《数据库设计入门》的精选内容,欢迎访问葡萄城官网免费预约在线课程学习,罗老师会亲自为你扫平一切数据库设计过程中的“坑”。

    【GSFAI BANK FINANCING】尊享直接对接老板

    电话+V: 152079-09430

    专注于为大数据运营推广及打包交易配套流程服务方案。为企业及个人客户提供高性价比的数据确权、数交所交易及应用场景内外共享解决方案,解决小微企业难题

    数据库技术参数设计包括什么阶段,「技术解惑」数据库设计的那些事D2074708-43D6-406f-8C17-B2D4AA980CC6
    Copyright2023未知推广科技