数据库设计

数据库设计的范式

拜拜、爱过 提交于 2020-04-08 00:50:41
范式概念:数据库设计需要遵循的规范,这些规范可以优化数据的储存与设计,要遵循后面的范式,就必须遵循前面的范式。 范式分类:目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。一般数据库设计满足第三范式即可。 第一范式定义:表中的每一个列都是不可分割的原子数据项。 第二范式定义:在第一范式的基础上,非码属性必须完全依赖码,(在第一范式的基础上,消除非码属性部分函数依赖码),为了理解这句话,我们要了解几个概率,函数依赖(A-->B):指的是一个属性(组)A的值可以完全确定B的值,那么可以叫做B函数依赖A,完全函数依赖:如果A是一个属性组,B的值由A属性组中所有属性共同所确定,那么就叫B完全函数依赖A。部分函数依赖:如果A是一个属性组,B的值由A属性组某个,某几个属性确定,那么就叫B部分函数依赖A,传递函数依赖(A-->B,B-->C):如果B属性函数依赖A属性,C属性函数依赖B,那么C叫做传递函数依赖A。码:在一个表中,一个属性(组),被其他属性所完全函数依赖,则这个属性(组)叫码。 第三范式定义:在第二范式的基础上,任何非主属性不能函数依赖其他非主属性(在第二范式的基础上消除传递函数依赖关系)主属性:码属性组中的所有属性, 非主属性:除过码属性组的属性。

【ERP系统设计】【数据模块】4 Hibernate开发实例

僤鯓⒐⒋嵵緔 提交于 2020-04-07 18:29:11
Hibernate开发实例   目前广泛使用的数据库系统都是关系型数据库系统,而我们平时开发的应用程序都是采用面向对象的思想进行开发。程序每次对数据库操作都要将对象数据转换成繁琐的SQL 语句后才能进行数据库访问、操作。这导致程序大量代码重复,程序开发效率降低。另外 SQL 作为一门独立的语言拥有自己的精髓,并非所有程序员都可以像操作自己熟悉的开发语言一样操作数据库。一般的项目都需要有专门的数据库开发人员对数据进行管理 。针对这些问题,目前市场上已经出现了一些数据库管理软件,但他们都各有优劣,还没有完善的解决方案。 ( 1 )普通的关系数据库管理软件,如 Navicate 等: 优点:这类软件可以对关系数据库数据进行各种操作,能够方便修改数据表结构和数据。 缺点:这类软件只适合专门的关系数据库设计人员,而且设计的数据表在面向对象的程序中使用不方便,程序中会有大量的重复代码用在对数据库表的操作,软件更不支持面向对象建模。 ( 2 )面向对象的数据库管理软件,如 Hibernate Synchronizer 插件等: 优点:可以从数据库中生成面向对象的类,然后在程序中直接操作数据表; 缺点:只能将设计好的数据库转化为面向对象的类,然后操作数据表,无法直接对数据表结构修改,不支持面向对象建模。 ( 3 )支持面向对象建模的数据库管理软件,如 PowerDesiner 等 优点

数据库设计方法、规范与技巧

让人想犯罪 __ 提交于 2020-04-03 22:14:08
原文地址: http://www.xiaohao.com/bfart/view.asp?id=160 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法

数据库设计方法、规范与技巧

风流意气都作罢 提交于 2020-03-30 06:22:27
一、数据库设计过程   数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。   数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。   1. 需求分析阶段   需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。   需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。   需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。   常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。   分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis

需求分析

可紊 提交于 2020-03-28 12:14:04
什么是需求 需求就是客户对于系统的期望;很多人认为需求和技术无关,这种想法是片面的,其实,只要是客户的要求就是需求,无论是业务层面还是技术层面,都应该写入需求规格说明书; 需求要详细到什么程度 需求分析阶段可以不进行数据库设计,但是需求分析尽量要把字段确认清楚,下一步数据库设计的依据就是需求分析的内容;所以需求分析就是应该是字段级别,但是有的时候客户不愿意和你确认到字段级别(之前我碰到的客户就是这样,无界面需求和你讨论,但是界面需求不和你确认)。那么什么是分析呢?就是把一坨需求,能够进行分割,组合以及重新组合,所谓重新组合是指将N坨需求进行细化后,从新归类,所谓分析,就是做这个工作; 什么是需求分析 就是将需求进行归类整理,梳理成业务流程,并发现内在联系的过程;并形成文档,和客户确认,然后在让开发人员依据这份文旦进行设计。 文档组织 1.字典;在编写文档过程中不断充实; 2.划分需求模块清晰;需求分析阶段其实已经把整体模块; 3.每个模块流程处理逻辑描述清晰; 团队内部怎么进行分析? 首先,我明白了之前的深航项目在做概要设计的时候要写到Sql,只有到了SQL级别才算是有设计,至于开设计会的时候: 1.首先是识别用例,用脑风暴, 2.然后由专人分类汇总,任务划分,做设计,梳理流程; 3.角色扮演,每个人讲述清楚自己的角色/任务都做什么事,怎么做事,接口参数都是什么,总体流程梳理清晰了

数据库设计之 ER图、三大范式

拟墨画扇 提交于 2020-03-26 17:00:19
ER图 Entity Relationship,实体关系图。 1、先画出所有实体,矩形圈出来 2、再画出每个实体的属性,椭圆圈出来,实体、属性之前用实线连接。为了方便找出主键,作为主键的属性可以画一条下划线。 3、标注实体之间的关联关系:一对一(1,1)、一对多(1,n),多对多(m,n)。关系用菱形表示,并在菱形2边的线上标上1、m、n这些表示2个实体之间关联关系的字符。 关联关系: 一对一,一个人只对应一张身份证,一张身份证也只对应一个人。(2个一对一) 一对多,一个用户可以拥有多个订单,一个订单只能属于一个用户。(1个一对一、1个一对多) 多对多,一个老师可以教多个学生,一个学生可以有多个老师。(2个一对多) 比如实体A、B,先把A作为1,看B是1还是多;再把B作为1,看A是1还是多。 如果2个都是一对一,那A、B就是一对一; 如果1个一对一、1个一对多,那A、B是一对多; 如果2个都是一对多,那A、B就是多对多。 数据库三大范式 数据库有8种范式(Normal Form),通常只用到前3种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。 1NF 属性的原子性(不可再分) 数据库中的每一个字段都要是不可再分隔的基本 2NF 属性完全依赖于主键 一张表中的每一条记录都要是可区分的,只通过主键来区分,所以一张表必须要有一个unique字段。

项目开发规范,数据库设计规范

核能气质少年 提交于 2020-03-25 15:35:00
1. 命名规范 定义这个规范的目的是让项目中全部的文档都看起来像一个人写的,添加可读性。降低项目组中由于换人而带来的损失。 (这些规范并非一定要绝对遵守,可是一定要让程序有良好的可读性) 1.1 namespace 的命名 namespace的名字应该都是由一个大写字母开头的单词组成,若由多个单词组成。每一个单词的首字母大写。 1.2 Class 的命名 Class 的名字必须由大写字母开头而其它字母都小写的单词组成。 比如: class Raster; 1.3 局部变量的命名 变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。 1.4 Static 变量的命名 Static 变量的名字应该都大写,而且指出完整含义。 1.5 參数的命名 參数的名字必须和变量的命名规范一致。 1.6 数组的命名 数组应该总是用以下的方式来命名: byte[] buffer; 而不是: byte buffer[]; 1.7 代码凝视 类头部凝视 1.用文字说明代码的作用。并正确指出该代码的编写思路和逻辑方法; 1. 在每一个类的開始赋予一个凝视标头; 可參考:(至少须要这几项,Description:描写叙述该类功能。作者,时间。 ) /** * Description: 用户管理 * @Author : wjl * @Create Date: 2015 - 8 - 17 下午 4:06

Mybatis(一)Mybatis相关概念

跟風遠走 提交于 2020-03-25 13:33:54
1.1 传统的JDBC实现 public static void main(String[] args) { Connection connetion = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try{ //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); connetion = DriverManager.getConnetion("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root"); //定义SQL语句 String sql = "Select * from user where username = ?"; //获取预处理statement preparedStatement = connection.preparedStatement(sql); preparedStatement.setString(1,"zbc"); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { int id = resultSet.getInt

数据库设计的六个阶段详解

假如想象 提交于 2020-03-23 17:13:09
数据库设计的阶段 数据库设计可以分为6个阶段 1. 系统需求分析阶段 2. 概念结构设计阶段 3. 逻辑结构设计阶段 4. 物理结构设计阶段 5. 数据库实施阶段 6. 数据库运行和维护阶段 各阶段的任务 系统需求分析 对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。 1. 调查分析用户活动 2. 收集和分析需求数据,确定系统边界信息需求,处理需求,安全性和完整性需求 3. 编写系统分析报告 两种方法:自顶向下,自底向上 概念结构设计 将需求分析数据抽象成局部E-R模型,再将局部E-R模型集成为全局E-R模型 逻辑结构设计 将概念模型转换成特定DBMS所支持的数据模型的过程 由初始关系模式设计到关系模式规范化再到模式评价 物理结构设计 对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构 数据库实施 根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。 数据库运行和维护 主要有以下三项内容: 1. 维护数据库的安全性和完整性 2. 监测并改善数据库性能 3. 重新组织和构造数据库 来源: https://www.cnblogs.com/sunbr/p/12552910.html

MyBatis持久层框架学习之01 MyBatis的起源和发展

柔情痞子 提交于 2020-03-23 05:47:04
一、MyBatis的简介    MyBatis 是支持定制化 SQL、存储过程以及 高级映射 的优秀的持久层框架。   MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis可以使用简单的XML或注解用于配置和原始映射, 将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 . 二、MyBatis的历史    原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation 迁移到了google code,随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis ,代码于2013年11月迁移到Github。   iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)    三、MyBatis的基本说明   (1)、MyBatis是一个工作在持久层的框架,它 不再是一个标准的ORM框架      我们先看看Hibernate是如何对数据库进行操作    我们再来看看Mybatis如何对数据库进行操作    因为它只管理了SQL语句和Java之间的关联和映射