【学习笔记】数据库系统之数据库设计

一.概论

设计概述

成功的设计需要什么呢?

  • 具有扎实的计算机科学基础(拥有基础知识)
  • 全面深入地理解应用背景(理解应用环境)
  • 一定的开发经验(了解如何开发)
  • 规范的开发方法(具有开发的方法)
  • 团结合作的开发团队(团队很重要)

什么是数据库设计:

指对于一个给定的应用环境,构造最优的数据库模式(什么叫数据库模式),建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。它是数据库在应用领域的主要研究课题。

什么是数据库应用系统:

使用数据库的各类系统统称为数据库应用系统。

信息系统和数据库的区别(大雾):

从使用者的角度来说,
信息系统是提供信息、辅助人们对环境进行控制和进行决策的系统。
数据库是信息系统的核心和基础。
两者是包含与被包含的关系。

从事数据库设计的专业人员需要以下技术和知识:

  1. 数据库的基本知识和数据库设计技术(知道怎么设计数据库)
  2. 计算机科学的基础知识和程序设计的方法和技巧(深刻理解计算机,懂得软硬件的知识,同时对于编程语言有一定的掌握)
  3. 软件工程的原理和方法(了解一个成功的应用软件应该如何实现)
  4. 应用领域的知识(理解数据库在应用中具体如何实现)

数据库设计的特点

数据库设计是硬件、软件和干件的结合。
数据库设计应该和应用系统功能设计相结合。整个设计过程中要把结构设计行为设计密切结合起来。
早期的设计致力于数据模型和建模方法研究,着重结构而忽视行为设计,两者是分离的,如何将两者相结合,许多学者和专家进行了探讨和实践。(如何考虑行为设计呢?行为是什么呢)

数据库设计方法

十余年来人们努力探索,提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法:

  • 新奥尔良方法
    将设计分为四个阶段:

    • 需求
    • 概念
    • 逻辑
    • 物理设计
  • 基于E-R模型的数据库设计方法

  • 基于3NF的设计方法

  • ODL(对象定义语言)设计方法

数据库设计基本步骤

数据库设计是在DBMS支持下设计数据库应用系统(如管理信息系统)的过程。
概念结构设计、逻辑数据库设计和物理数据库设计为核心,一般分为如下六个阶段:

  • 需求分析
  • 概念结构设计(构造ER模型)
  • 逻辑结构设计(生成一组关系模式)
  • 物理结构设计(设计具体DBMS下的表、视图、索引 这里不是很懂
  • 数据库实施
  • 数据库运行和维护

二.需求分析

概述

这里不做重点介绍,主要有以下几点:

  • 任务:
    • 调查信息要求、处理要求和完整性(安全性)要求。
  • 调查内容和步骤
    • 调查组织机构,各部门业务活动,明确用户对新系统的要求,确定新系统边界。
  • 调查方法:
    • 跟班作业,开调查会,请专人介绍,询问,设计调查表请用户填写,查阅相关数据记录(???这么麻烦的吗)
  • 分析和表达方法:
    • SADT(结构分析与设计技术,数据流图DFD和数据字典DD)

数据流图和数据字典

数据流图

数据流图

数据字典

数据字典DD
数据字典,即描述数据的数据,是各类数据描述的集合,是进行详细的数据收集和数据分析所得的主要结果。
DD将数据流图中的每个对象进行具体详尽的描述。包括数据结构,数据项,数据流,数据存储和处理过程描述。它为后续阶段提供了数据和处理的依据。(xml算吗?不懂就问)

三.概念结构设计(重点)

3.1 概论

什么是概念结构设计:

概念结构设计能产生整体数据库的概念结构(概念模型),它是整个组织的各个用户关心的信息结构,也是数据库设计的关键
概念结构是各种数据模型的共同基础(各种概念模型详解有吗?),它比数据模型更独立于机器,抽象程度更高,因此更加稳定。

概念模型的特点:

  1. 是对现实世界抽象的一个真实模型。
  2. 易于理解。
  3. 易于更改和扩充。
  4. 易于向关系等各种数据模型转换。

3.2 概念模型的基本概念(复习)

概念模型有以下等概念:

  • 实体(强实体、弱实体
  • 属性(简答属性/复合属性,单值属性/多值属性,导出属性)
  • 实体集
  • 实体型
  • 联系:
    • 基数约束(一对一,一对多,多对多)
    • 参与性约束(全参与,部分参与)

实体:

客观存在并可以相互区别的事物称为实体。不仅可以是具体的人、事、物,还可以是抽象的概念和联系(?有例子吗)

属性:

实体由若干属性刻画在这里插入图片描述

  • 弱实体:没有独立标识,依赖于其它实体,需要从其所依赖的强实体借码来标识自己

在这里插入图片描述
码:

唯一标识实体的属性集称为码。可以不唯一。(候选码)

域:

属性的取值范围。

实体型:

具有相同属性的实体具有共性。用实体名以及其属性名集合来刻画同类实体,称为实体型(类比C++,实质实体就是一个对象,实体型就是类)

实体集:

同一实体型实体的集合。

联系:

主要研究不同实体集之间的联系,即他们之间的关系有哪些性质(例如老师和学生的师生关系是可以1对多,学生全参与)

基数约束(cardinality ratio):

  • 一个特定联系中一个实体可参与的联系数
  • 包括1:2,1:M,M:N

参与性约束(participation):

  • 实体型的实体是否都参与了联系
  • 分为全参与和部分参与

E-R方法

E-R方法:Entity-Relationship实体-联系方法,该方法用E-R图来描述现实世界的概念模型,是建立概念模型的有用工具。

E-R图提供了表示实体型、属性和联系的方法:

  • 实体型:客观世界具体的事物,用矩形框表示。
  • 属性:实体型的特性。用椭圆形表示,并用连线与实体连接起来。
  • 实体间的联系:实体集之间的联系,用菱形框表示,框内标联系名称。
    例子1
    如图则表示了一个学生与研究生、本科生的ER图

ER模型记号

在这里插入图片描述
在这里插入图片描述

数据库概念设计步骤

  1. 确定实体集
  2. 确定联系集
  3. 确定实体和联系的属性
  4. 确定属性的域(忽略)
  5. 如果需要,使用特点/泛化等ER表示(忽略)
  6. 检查、消除冗余

概念结构设计的方法和步骤

  • 自顶向下
  • 自底向上
  • 逐步扩张
  • 混合策略

其中常用的是自底向上方法。先用自顶向下进行需求分析,然后再自底向上地设计概念结构。一般又分成两步:

  • 抽象数据并设计局部视图;
  • 集成局部视图,得到全局的概念结构。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值