数据库设计

权限管理系统之数据库设计【系列篇】

丶灬走出姿态 提交于 2020-02-02 20:43:56
前言 肺 病几时朝日边, 炎 方每续朱樱献。 疫 气冲头鬓茎少, 情 多唯欲哭残春。 牵 牛织女渡河桥, 动 摇浮蚁香浓甚。 人 今已到九仙家, 心 在琴书自忆家。 今天是2020.02.02 (爱你爱你) 也是中国新年大年初九。中国人民正在经受新型冠状病毒肺炎的折磨。每天看着不断上升的确诊病例和死亡病例。肺炎相关的时事新闻、广播、电台不断涌入。仿佛全国上下陷入深深的惶恐不安之中 虽然2020年的开头不顺,诸事扰心。但是我们依然要保持对美好生活的向往与追求。希望肺炎疫情能尽快遏制住。禽流感不要四处蔓延,我们老百姓能安居乐业,健健康康~ 开篇 早在一个月前就有这个想法,从0到1开发一个权限管理系统。那么问题来了?怎么做呢? 参考哇,模仿哇,抄袭哇,学习哇。 1.了解RBAC是个什么玩意儿 2.技术选型(前端UI、 数据库 选择、后端架构搭建) 那么,话不多说,开整。 其中前端页面采用了H+,登录页抄袭了feiyitERP开源项目的登录页。后端采用了.NET Core 2.2,ORM使用自封装的Dapper。数据库使用Mysql 演示地址 http://role.fuyue.xyz 整个系统大概看起来是这样: 在系统讲解菜单中专门针对此系统有一个录屏视频讲解。 RBAC 在这里简单介绍一下RBAC吧,更多内容可以自己搜索一下相关资料。 RBAC(Role-Based Access

机房重构数据库设计---工具“PowerDesigenr”

被刻印的时光 ゝ 提交于 2020-02-02 03:58:25
俗话说:工欲善其事必先利其器,这是第二次机房收费系统。不想使用之前的数据库,所以就在网上查询用什么可以设计数据库。最后在哔哩哔哩上找到一个视频~讲的就是如何使用PowerDesigenr这个软件设计数据库。 界面展示 数据库设计成品展示: 具体怎么使用就不在这啰嗦了大家都可以找到更加详细的教程,不怕不知道,就怕不知道。所以不担心大家不会,只是担心大家不知道这个软件的存在! 好处: 好处非常有必要在这里多啰嗦下,也算是让大家眼馋一下吧!看上面已经设计好的关系图了没,这个图可以支持正向生产代码。可以生成SQL语句的代码,然后你就可以把这个代码复制到你已经创建的数据库里去创建表(切记,一定要先创建一个空的数据库) 生成的SQL语句部分代码 /*==============================================================*/ /* DBMS name: Microsoft SQL Server 2012 */ /* Created on: 2020/1/29 22:43:20 */ /*==============================================================*/ if exists (select 1 from sys.sysreferences r join sys.sysobjects

数据库设计步骤

我与影子孤独终老i 提交于 2020-02-01 02:53:16
目录 数据库设计步骤 1.需求分析阶段: 2.概要设计阶段:绘制E-R图 3.详细设计阶段 数据库设计步骤 1.需求分析阶段:分析客户业务需求,特别是数据处理方面的需求。 2.概要设计阶段:绘制数据库的E-R模型图。确认需求文档的正确定和完整性 3.详细设计阶段:将E-R图转换为多张数据库表。进行逻辑设计,确定各张表的主外键,运用数据库设计的三大范式对设计进行审核。最后选定具体采用的数据库(如SQL Server或Oracle等)。 以下为详细过程: 1. 需求分析阶段: 无论需要设计的数据库系统的大小和复杂程度如何,在进行设计的系统分析时,可以参考一下四个基本步骤: 1)确定业务的需要(需求) 充分了解在这个系统中数据库需要完成的任务和功能。简单来说我需要数据库存储那些数据,实现哪些功能。 2)表示关键实体 即关系数据模型中的实体(每个实体都会有一个与其对应的表) 3)标识每个实体具有的属性 即实体需要存储的详细信息,这些信息(属性)将会成为表中的列。 4)确定实体间的关系 不同类型的信息可以单独存储。但如果需要数据库引擎可以根据需要将数据组合起来。 在设计过程中,要标识实体之间的关系,需要分析这些实体,确定他们在逻辑上是如何关联的,同时添加标识关键列,建立起实体之间的联系。 2. 概要设计阶段:绘制 E-R 图 1)映射基数:通过关系与该实体关联的其他实体的个数

数据库设计的范式

懵懂的女人 提交于 2020-01-30 15:44:42
数据库设计的范式 范式顾名思义,即 设计数据库时需要遵循的一些规范 。要遵循后边的范式要求,必须遵循前面所有范式的要求。设计关系数据库时,遵从不同的规范要求,设计出合理的关系数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高范式数据库冗余越小。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(SNF,又称完美范式) 对于一般的项目,满足前三项就可以了。下面具体介绍前面三项。 1.第一范式(1NF) 每一列都是不可分割的原子数据项 怎么去理解呢?其实不难,简单来说就是,必须是一个能存进去数据库的数据表。 2.第二范式(2NF) 在1NF基础上,非码属性必须完全依赖候选码(在1NF基础上消除非主属性对主码的部分函数依赖) 相关概念: 函数依赖:A–>B,如果通过A属性(属性组)的值,可以唯一确定B属性的值。则称B依赖于A 完全函数依赖:A–>B,如果A是一个属性组,则B属性值的确定依赖于A属性组中所有的属性值。 部分函数依赖: A–>B,如果A是一个属性组,则B属性值的确定只需依赖于A属性组中其中一些的属性值。 传递函数依赖:A–>B,B–>C=>A–>C。如果通过A属性(属性组)的值,可以唯一确定B属性的值,通过B属性(属性组)的值,可以唯一确定C属性的值

数据库设计规范化——设计规范:三大范式

倾然丶 夕夏残阳落幕 提交于 2020-01-30 07:09:22
目录 数据库设计规范化——设计规范:三大范式 1NF第一范式: 2NF 第二范式: 3NF 第三范式: 数据库设计规范化——设计规范:三大范式 1NF 第一范式: 关系中的每个属性必须是不可再分的简单项,不能是属性组合,必须是不可拆分的。 2NF 第二范式: 1)表必须符合第一范式 2)表中每列必须依赖主键 3NF 第三范式: 1)满足第二范式 2)确保每列都和主键列直接相关。即除了主键外的其他列既不部份依赖也不传递依赖于主键。 数据库设计的最终原则不是规范化,设计最合适实际应用需要的数据库才是数据库的设计原则。 来源: CSDN 作者: Tavin_77 链接: https://blog.csdn.net/Tavin_77/article/details/104107905

Mybatis面试题目

爱⌒轻易说出口 提交于 2020-01-29 04:45:26
${s}与#{s}的区别 1.${s}是Properties文件中的变量占位符,属于静态文本替换,比如 d r i v e r 会 被 静 态 替 换 为 c o m . m y s q l . j d b c . D r i v e r 。 e g : i d = {driver}会被静态替换为com.mysql.jdbc.Driver。eg:id= d r i v e r 会 被 静 态 替 换 为 c o m . m y s q l . j d b c . D r i v e r 。 e g : i d = {1 Or 1=1}(sql注入问题)。即传入的s是什么花括号中就是什么。 2.#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,***在sql执行前***会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。使用#{}可以有效的防止SQL注入,提高系统安全性。一般能用#的就别用 , , , 方式一般用于传入数据库对象,例如传入表名. 3.用法:select * from user where name

数据库设计

点点圈 提交于 2020-01-29 02:29:30
数据库设计概述 从广义角度讲,是数据库及其应用系统的设计,即设计整个数据库应用系统。 从狭义角度讲:是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分 定义:数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的储存和管理数据,满足各种用户的应用要求,包括信息管理要求和数据操作要求。 目标:为用户和各种应用系统提供一个信息基础设施和高效的运行环境。 数据库设计特点 1.数据库建设的基本规律:三分技术,七分管理,十二分基础数据 2.结构(数据)设计和行为(处理)设计相结合 数据库设计方法 计算机的基础知识 软件工程的原理和方法 程序设计的方法和技巧 数据库的基本知识 数据库设计技术 应用领域的知识 数据库设计的基本步骤 1.需求分析 2.概念结构设计 3.逻辑结构设计 4.物理结构设计 5.数据库实施 6.数据库运行和维护 数据库设计过程中的各级模式 需求分析 需求分析的任务 调查的重点是“数据”和“处理”,通过调查,收集与分析,获得用户对数据库的以下要求: 信息要求 处理要求 安全性与完整性要求 需求分析的方法 调查用户需求的步骤: 调查组织机构情况 调查各部门的业务活动情况 在熟悉业务活动的基础上,协助用户明确对新系统的各种要求 明确新系统的边界 常用的调查方法: 跟班作业

数据库设计(一) 需求分析

别等时光非礼了梦想. 提交于 2020-01-28 04:42:32
目前,大多数的应用系统都属于数据库应用程序,都离不开数据库的支持。数据库设计方案的优劣对于应用程序的运行至关重要。数据库设计过程就是针对具体的应用环境,设计优化的逻辑模式,并根据所采用的数据库系统设计物理结构,最后建立应用程序的数据库。 数据库设计过程可以理解为提出问题、分析问题、解决问题的过程,具体包含6个步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。下图是数据库的总体设计过程。 需求分析的的主要任务是熟悉系统的业务,明确用户的需求。终点是调查与分析用户在信息管理中的数据要求、处理要求、安全性与完整性的要求。需求分析一般采用自上而下的需求分析方式,用数据流图和数据字典维护系统。 数据流图用来描述系统的逻辑模型,它描述数据流在系统中的流动情况和处理情况,是逻辑系统图形表示。在组织方式上,数据流图以分层的形式表示结构关系。 数据字典是各类数据集合的描述,是进行详细的数据收集和数据分析后的结果。数据字典包括对数据项、数据结构、数据流、数据处理、存储过程的规范和描述。 来源: https://www.cnblogs.com/ggz19/p/4095101.html

数据库设计(三)之数据库维护与优化

眉间皱痕 提交于 2020-01-27 02:03:39
维护与优化中要做什么 一.维护数据字典 1.使用第三方工具对数据字典进行维护 2.利用数据库本身的制备柱字段来维护数据字典 二.维护索引 如何选择合适的列建立索引 1.出现在WHERE从句,GROUP BY从句,OREDER BY从句中的列 2.可选择性高的列要放到索引的前面 3.索引中不要包括太长的数据类型。只使用前16个字节进行索引,或者太大的字段,进行md5转换,再去进行索引 注意事项: 1.索引并不是越多越好,过多的索引不但会降低写效率,而且会降低读的效率。 每写一条记录,都要对索引进行维护,维护的成本就大。 读操作,因为SQL优化器会根据索引信息和统计信息来选择适合sql的索引。如果索引太多,SQL优化器选择索引的过程会影响效率 2.定期维护索引碎片 索引的创建和维护存在消耗,索引会占用物理空间,且随着数据量的增加而增加。 3.在SQL语句中 不要使用 强制索引关键字。 由于数据量的变化原来使用的索引,可能以后就不适用。如果使用强制索引,会影响数据库效率,如果删除该索引,开发人员不知道,查询就会出错。 三.维护表结构 注意事项: 1.使用在线变更结构的工具 不同种类的触发器可以存在于同一个表,但同种类的不能有多个。 2.同时对数据字典进行维护 3、控制表的宽度和大小 数据库中适合操作 1.批量操作VS逐条操作 数据库中适合批量操作,逐条操作适合在程序中完成 2

Oracle数据库设计第三范式

99封情书 提交于 2020-01-25 10:32:02
一、数据库设计范式及其意义和不足 数据库的设计范式是数据库设计所需要满足的规范,数据库的规范化是优化表的结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁。实践中,通常把一个数据库分成两个或多个表并定义表之间的关系以做到数据隔离,添加、删除和修改某个字段只需要在一个表中进行,接着可以通过定义的关系传递到数据库中剩余的表中(和分层思想的意义所在很相似)。这样我们可以消除很多错误或垃圾数据出现的机会并减轻更新信息所必要的工作量。 目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推 事物往往具有多面性,设计范式也会带来一定的麻烦:操作困难,因为需要联系多个表才能得到所需要数据,而且范式越高性能就会越差。所以使用多高的范式需要权衡利弊,一般在项目中,使用到第三范式也就足够了,性能好而且方便管理数据。 二、下面我们来举例介绍一下数据库设计三范式 说明:实例采用《学校机房收费系统》的“学生信息表”,“学生上下机记录表”的部分字段 1、第一范式1NF 定义:数据库表中的字段都是单一属性的,不可再分。 简单的说,每一个属性都是原子项,不可分割。 1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。也就是说