首页 > 数据库 >二十、数据库设计

二十、数据库设计

时间:2024-03-21 10:04:40浏览次数:29  
标签:范式 二十 数据库 ODBC 表头 设计 数据

一、数据库设计的重要性

在系统研发中,数据库作为数据的保存介质,那么数据库如何保存业务数据。这就需要开发者来设计 了。当数据库比较复杂(如数据量大,表较多,业务关系复杂)时: 1、良好的数据库设计可以: 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 2、糟糕的数据库设计 数据冗余、存储空间浪费 数据更新和插入的异常 数据库设计对于开发者来说,是很重要的一块。

二、数据库的生命周期

2.1 需求分析阶段

此阶段在软件项目开发周期中的需求分析阶段进行)这个阶段主要是收集并分析用户的业务和数据处理 需求 收集信息(我们需要与数据的创造者和使用者进行访谈。对访谈获得的信息进行整理、分析,并撰 写正式的需求文档。需求文档中需包含:需要处理的数据;数据的自然关系;数据库实现的硬件环 境、软件平台等;) 标识对象 标识每个对象的属性 标识对象之间的关系

2.2 逻辑设计阶段

此阶段在软件项目开发周期中的概要设计和详细设计阶段进行,使用ER或UML建模技术,创建概念数 据模型图,展示所有数据以及数据间关系。最终概念数据模型必须被转化为范式化的表。 a. 绘制E-R图 b. 将E-R图转换为表格 c. 应用三大范式规范化表格

2.3 物理设计阶段

根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措 施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻 辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。物理设计阶段遵循以下 要求 a. 数据库物理设计的目标是尽可能优化性能。 b. 物理设计阶段,表结构可能需要进行重构来满足性能上的需求,这被称为反范式化。 c. 反范式化。 d. 实现和维护阶段。反范式化的步骤包括 1. 辨别关键性流程,如频繁运行、大容量、高优先级的处理操作 2. 通过增加冗余来提高关键性流程的性能 3. 评估所造成的代价(对查询、修改、存储的影响)和可能损失的数据一致性 实现和维护阶段 1. 当设计完成之后,使用数据库管理系统(DBMS)中的数据定义语言(DDL)来创建数据结构。 2. 数据库创建完成后,应用程序或用户可以使用数据操作语言(DML)来使用(查询、修改等)该 数据库。 3. 一旦数据库开始运行,就需要对其性能进行监视。当数据库性能无法满足要求或用户提出新的功 能需求时,就需要对该数据库进行再设计与修改。这形成了一个循环:监视 –> 再设计 –> 修改 –> 监视…。

三、设计范式

范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的鼻祖)在上个世纪70年代提 出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所 要参考的一个建议。

3.1 第一范式(1NF)

第一范式强调的是列的原子性,信息存储列不可再分,原子:就是不可再分; 即列不能够再分成其他几列。避免字段中信息冗余。 考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。 第一列具备原子性 第二列不具备原子性  

3.2 第二范式(2NF)

所谓第二范式,第一,表必须符合第一范式的规则。第二,每列必须依赖主键。 在实际中,一个实体还需要分割成两个表,这样就有两个实体。表头是两个有关系的表中父表的一部 分。表头的信息只需要存储一次,而细节表存储可能有多个实例信息。表头通常保持原表的名称,细节 表通常以表头名称开头,添加一些细节表的信息。

3.3 第三范式(3NF)

第三范式使得表中所有的列不仅仅依赖于某个事物,而是依赖于正确的事物。 有以下三个规则: 1、表必须符合2NF。 2、任何列都不能依赖于非键列。 3、不可以有派生的数据(不建议冗余)。

四、绘制E-R图

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用 来描述现实世界的概念模型图。

4.1、工具准备

PowerDesigner(推荐使用) ApexSQLLog Tuning Advisor SSMSTools DBDiff PAL Tool RMLSqlNexus SqlNexus SQLIO和SQLIOSim   PowerDesigner 模型设计工具 链接:https://pan.baidu.com/s/1A8KTCMLaSbR0j_vOsPFvwg?pwd=6666 提取码:6666

4.2、生成数据库

a. PowerDesigner生成脚本----通过脚本执行初始化数据库 b. PowerDesigner直接连接数据库服务器,初始化数据库

4.3、ODBC & 如何配置ODBC

开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产 生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系结构))的 主要部分和基于Windows环境的一种数据库访问接口标准。ODBC 为异构数据库访问提供统一接口, 允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数 据,免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件,甚至访问如Excel 表和ASCI I数据文件这类非数据库对象。 开始配置: 控制面板----> 系统和安全----->管理工具----> ODBC数据源--->配置用户DSN

4.4、E-R图生成数据库 && 通过数据库生成E-R图

标签:范式,二十,数据库,ODBC,表头,设计,数据
From: https://www.cnblogs.com/duyao/p/18086682

相关文章

  • c语言运用,猜数字小游戏设计
    我们要用c语言做一个猜数字小游戏,就是在1-100的数字中随机生成一个数字,然后我们去猜测那个生成的数字。做这个游戏,那我们需要的是一个整体的思想,做一个游戏需要有哪些部分?一开始可能会没有头绪,但是只要顺着一条线的思维,想一想要做的游戏刚开始是什么样子,玩的时候是什么样子,游......
  • python轻量数据库TinyDB使用
    安装pipinstalltinydb特性1.轻量易用2.JSON数据存储,使用json格式存储数据,类似mongodb数据库。3.支持查询和过滤4.支持事务5.可插件拓展示例fromtinydbimportTinyDB,Query​#创建数据库db=TinyDB('my_db.json') #会在本地创建一个"my_db.json"文件作为数据......
  • 通过Docker安装MySQL数据库
    1.安装Docker首先,确保你的系统上已经安装了Docker。如果还没有安装,可以访问Docker官网查看安装指南。对于大多数Linux发行版,可以使用以下命令安装Docker:sudoapt-getupdatesudoapt-getinstalldocker.io安装完成后,启动Docker服务并设置开机自启:sudosystemctlstart......
  • 毕业设计——基于facenet实时人脸识别系统的设计与实现+源码+综述
    如需完整源码,可以联系博主获取技术路径:opencv+mtcnn+facenet+python+tensorflow,实现局域网连接手机摄像头,对目标人员进行实时人脸识别一、引言随着信息技术的飞速发展,人脸识别技术已成为身份验证、安全监控等领域的核心技术之一。实时人脸识别系统,以其高效、准确的特点,......
  • QT6实现创建与操作sqlite数据库三种方式方式对比(二)
    一.概述Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),QSqlQuery、QSqlQueryModel、QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更厉害,甚至第三种QSqlTableModel,根本就不需要开发者懂SQL语言,也能操作Sqlite数据库。二.Qt读写Sqlite数据库的三种方......
  • 工良出品,从零设计开发 .NET 开发框架:框架源码和教程电子书
    为什么要写这个教程在毕业之后,读者写过了大量的文章和开源项目,正是坚持一边学习一边输出,所以笔者最终从一个生菜鸡进化为一个熟菜鸡。在程序员的成长中,我们会在思路,如何学习、如何进步,比如要成长为一个架构师,需要具备什么样的能力。比如说技术能力,技术能力是最核心的基础,那么我......
  • 基于springboot实现校园管理系统的设计与实现演示【附项目源码+论文说明】
    基于springboot实现校园管理系统的设计与实现演示摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,校园管理系统当然也不能排除在外。校园管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用sp......
  • 数据库
    数据库模式:三级模式两级映射外模式(视图)-用户模式概念模式(关系表)-模式内模式(索引和文件)-物理模式/存储模式数据库的设计过程:需求分析概念结构设计逻辑结构设计物理设计E-R模型:需求分析->抽象数据->设计局部ER模型->合并局部模型消除冲突->重构优化消除冗......
  • 了解和编译安装mysql数据库
    一.数据库的基本概念1.1数据①描述事物的符号记录称为数据(Data)。包括数字、文字、图形、图像、声音、档案记录等②数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。相同格式和类型的数据统一存放在一起,而不会把“人”和“书”混在一起存储。这样,数......
  • 设计模式|工厂模式
    文章目录1.工厂模式的三种实现2.简单工厂模式和工厂方法模式示例3.抽象工厂模式示例4.工厂模式与多态的关系5.工程模式与策略模式的关系6.面试中可能遇到的问题6.1**工厂模式的概念是什么?**6.2**工厂模式解决了什么问题?**6.3**工厂模式的优点是什么?**6.4**工厂......