数据库设计及其特点

数据库设计是利用数据库管理系统和相关软件硬件将用户的要转化使用数据库结构适应成有效的数据结构的过程。在现有的DBMS上建立数据库应用系统的过程。
特点:数据量大、保存时间长、数据关联复杂、用户要求多样化

数据库系统的生存期

从数据库应用系统开始规划、分析、设计、实现、投入运行、维护到被新系统取代而停止运行的整个期间。
data manipulation----data defination----data control----transaction control

规划阶段

对组织的各项事物(组织特性、已有系统等等)进行考量,分析业务需要建立数据库的必要性和可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。数据库规划完成以后,应写出详尽的可行性分析报告和数据库系统规划纲要。

需求分析

a调查组织的总体情况
b熟悉业务活动、明确需求
c确定系统边界

注释:从多方面对整个组织进行调查,收集和分析各个应用对信息和处理两方面的需求(用户要从数据库获得的信息内容、数据库需要完成什么处理功能及处理方式、数据库的安全性和完整性要求),将信息进行整理并评审。
方法/工具:数据字典和数据流图

数据字典:对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
包含内容:

  1. 数据项:数据的最小单位
  2. 数据结构:若干数据项有意义的集合
  3. 数据流:表示某一处理过程的输入或输出
  4. 数据存储:处理过程中存取的数据
  5. 处理过程:该过程的功能等
    例子:货物订单
    数据项名:订货单号
    说 明:标识每张订货单
    类 型:CHAR(8)
    长 度:8
    别 名:采购单号
    取值范围:10000000-99999999

数据流图:以图形方式来分析并逻辑的表达需求、按照逻辑流向和逻辑变换过程进行展现。
数据流图有四种基本图形符号:
:箭头,表示数据流,数据在系统内传播的路径;
〇:圆或椭圆,表示加工;
= :双杠,表示数据存储;
□:方框,表示数据的源点或终点。
注意:
a.命名。不论数据输出流、输入流、业务数据项等内容,适合的命名使人们易于理解其含义。
b.画数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”。
c数据流反映能用计算机处理的数据,并不是实物。

概念设计阶段

先将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种结构不是DBMS支持的数据模型,而是概念模型。然后再把概念模型转换成具体机器上DBMS支持的数据模型。


方法:ER图
业务规则识别主要主题和联系之后,可先初步绘制局部的ER图,之后需确认实体的属性和主码,进而在汇总各个局部的ER图时将要消除冲突和冗余。
消除冲突:

  1. 属性冲突:消除属性值的类型、取值范围或取值集合不同,属性取值单位冲突。
  2. 命名冲突:消除实体名、属性名、联系名冲突,解决同名异义和异名同义的问题。
  3. 结构冲突:
    a.同一对象在不同的ER图中作了不同的抽象。如企业员工业务中,员工职称在某个局部ER图中作为属性,而在另一局部ER图中作为实体。
    b.同一实体在不同分ER图中的属性组成、排列不同。属性取各局部视图的并集,并调整排列顺序
    c.实体间的联系在不同ER图中有不同的表现。根据具体语义环境对实体联系的类型进行综合或调整。

消除冗余(重复):

  1. 数据库理论上可做到冗余度为零。但是通常会利用可控数据冗余度(有意安排的,有控制的重复)。因此先识别重复,再消除不必要的重复。

逻辑设计

逻辑设计重点在设置关系模式(关系型业务背景下)。
思考:

  1. 关系数据库应该组织成几个关系模式。
  2. 关系模式中有包括哪些属性。
  3. 是否可以体现客观世界的信息。无过度的冗余;无插入异常;无更新复杂;无删除异常。

关系模式设计的理论支持——函数依赖
函数依赖是指关系R模式的所有关系元组均应满足的约束条件,而不是关系模式中的某个或某些元组满足的约束条件。它反映了一种语义完整性约束,只能根据语义来确定一个函数依赖。
函数依赖的几个类型:

  1. 完全函数依赖:决定因素中的任何属性都不能少
  2. 部分函数依赖:决定因素中缺少某些属性,但函数依赖仍然成立。
  3. 传递函数依赖:若X→Y,YX,Y ∕→ X,且Y→Z,ZY,则Z对X传递依赖。x决定y,一个y对应多个x,y决定z,z不属于y。

关系模式设计的方法——模式分解(范式衡量)
范式是对关系的不同数据依赖程度的要求。
模式分解:通过把一个关系模式的分解(属性集合、关系模式上的函数依赖集以及关系模式的当前值等的分解)利用范式(满足特定要求的模式)进行衡量,进而将一个低级范式转换为若干个高级范式的过程,也称为概念的纯粹化。

  1. 第一范式:关系模式R的所有的属性值域都是不可再分的。即不能以集合、序列等作为属性值。特点:关系模式;没有重复的元组;可以定义主码。不良特性:插入异常;删除异常;更新异常;数据冗余。
  2. 第二范式:对于关系模式R,若R∈1NF,且R中的每一个非主属性完全函数依赖于R的某个候选键,则R∈2NF。既再第范式基础上消除所有非主属性对候选码的部分依赖。
    如果一个数据库模式中的每个关系模式都是第二范式的,则称此数据库模式属于第二范式的数据库模式
  3. 第三范式:如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式(3NF)的模式,R∈3NF。既消除所有传递依赖,将原来传递依赖的属性单独组成新的模式,则在新的关系模式中形成完全函数依赖;原先的关系模式中去掉传递函数依赖的非主属性,则在新的关系模式中形成完全函数依赖。

sql知识——数据库设计相关推荐

  1. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》...

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  2. 第6章 SQL Server数据库设计

    6.1. 概述 数据库设计是指对于给定的一个应用环境,构造最优的数据库模式,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求). 可以将数据库设计理解成三个要素:应用环境.数据库模式 ...

  3. 14.sql server数据库设计的重要性(by-朝夕)

    Database 前言 数据库设计工具 为什么要用建模工具? 1.数据库设计的重要性 2.开发工具 3.数据库三大范式 4.设计工具 5.设计习惯 如何使用? 前言 数据库设计工具 PowerDesi ...

  4. SQL Server 数据库设计

    一.数据库设计的必要性 在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置.如果不经过数据库的设计,我们构建的数据库不 ...

  5. SQL SERVER数据库设计与现实

    2013-05-05数据库设计 一.数据库系统的相关概念: 1.数据: 数据是对客观休息的一种描述,它是由能被计算机识别与处理的情况.字符等符号结构的集合,即数据库是指描述事物的符号记录. 2.数据库 ...

  6. SQL Server数据库设计

    一.实验目的 掌握数据库设计的方法 二.实验操作方法和步骤 自定义主题,设计数据库,要求有外键关联 ① 建立数据库"教务系统管理",新建表"学生基本信息".&q ...

  7. SQL Server 数据库设计(ER图)

    用户表(User) ID 用户编号,主键 UserName 用户名 UserPwd 用户密码 Lever 用户级别 Ison 是否在线 订单表(Order) ID 订单号,主键 UuserId 客户编 ...

  8. 《数据库系统概论》7——数据库设计

    数据库设计概述 数据库设计 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信 ...

  9. 软考下午科目——第二章——数据库设计

    数据库设计(15`) 大纲要求 理解和掌握数据库管理系统的功能和特征 了解数据库模型,包括概念模式.外模式和内模式 了解数据模型,包括E-R图.第一范式.第二范式.第三范式 了解数据操作,包括集合运算 ...

最新文章

  1. 【原】开源——基于文件驱动的站点开发
  2. Server2008 RMS測試
  3. LazyInitializationException的四个解决方案–第2部分
  4. C语言实用算法系列之学生管理系统_单向链表内操作_提取排序规则
  5. 20145328 《Java程序设计》第7周学习总结
  6. windows10配置make命令
  7. 深入理解JVM之对象分配流程
  8. js实现简单的全选和反选
  9. 安装 VS 2015 报错 kb2999226
  10. 好看的css按钮样式收集
  11. C语言实现简单的电子通讯录
  12. 使用Python实现一个简单的聊天室
  13. . 尐儍苽 推荐一个专业的社团网站给您
  14. 植物大战僵尸修改存档总结
  15. C语言课程设计-实验室设备管理系统
  16. python爬取路况信息_高德实时路况数据获取
  17. 孙正义万字访谈实录:AI是我现在唯一关注的事情,我是科技的绝对信徒
  18. Apple十条黄金服务法则
  19. android性能测试 app 实时流量获取
  20. dota数据集标注改coco标注

热门文章

  1. C语言学习笔记---查漏补缺
  2. 论文阅读-2022.1.7-Don’t be Contradicted with Anything CI-ToD: Towards Benchmarking Consistency for Task
  3. 小学四年级上册中的计算机,小学四年级信息技术上册教案
  4. 出主意:阻止了对方倒苦水(错误行为)
  5. 计算机考证office四级
  6. 腾讯暑期实习面经验1
  7. Python性能分析优化及测试
  8. 含文档+PPT+源码等]精品微信小程ssm便捷记账本小程序+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计
  9. c++语言 构造函数,C++中构造函数的写法
  10. Nginx限流和黑名单配置