java数据库编程之数据库的设计
第一章:数据库的设计
1.1:为什么需要规范数据库的设计
1.1.1:什么是数据库设计
数据库设计就是将数据中的数据实体及这些数据实体之间的关系,进行规范和结构的过程。
1.1.2:数据库设计非常重要
良好的数据库设计表现的几个方面:
l 效率高
l 便于进一步扩展
l 可以使应用程序变得更加容易
1.2:设计数据库的步骤
需求分析阶段
概要设计阶段
详细设计阶段
1.2.1:收集信息
创建数据库之前,必须充分的理解数据库的需要完成的任务和功能
1.2.2:标识实体
在收集信息后,必须标识数据库要管理的关键对象或实体
1.2.3:标识每个实体需要存储的信息
标识实体的信息,该实体的属性,这些属性将组成表中的列
1.2.4:标识实体之间的关系
关系型数据库有一项很强大的功能,即他可以关联数据库中各项的相关信息
1.3:概要设计--------绘制E—R图
E-R图(entity-Relationship):实体关系图
1.3.1:实体-关系模型
1:实体:现实世界中客观存在的事物,具有行为特征和属性。
2:属性:属性就是实体的特征
3:联系:联系就是两个或连个以上的实体之间的关系
4:映射关系:表示通过联系与该实体关联的其他实体的个数。
一对一:X中的一个实体与Y中的一个实体关联。Y中的一个实体最多与X中的一个实体关联
一对多: X中的一个实体与Y中的任意多实体关联。Y中的一个实体最多与X中的一个实体关联
多对一:X中的实体与Y中的一个实体关联。Y中的一个实体最多与X中的任意多实体关联
多对多:X中的一个实体可以与Y中的任意多实体关联,,反正成立
5:实体关系图
矩形表示实体集
椭圆表示属性
菱形表示关系集
1.3.2:关系数据库模式
用二维表的形式表示实体和实体之间的数据模型称为关系模型
R(u) 或者R(A,B) R:表示关系名U:表示属性集合A,B表示U中的属性
1.4:逻辑设计--------绘制数据库模型图
1.4.1:绘制数据库模型图的步骤
新建数据库模型图
添加实体
添加数据列即相应的属性
添加实体之间的映射关系
1.5:数据规范化
1.5.1:设计问题
信息重复
比小心输入代表的意思一样,但是用的词却不一样。
更新异常
更新时造成的异常。
插入异常(无法表示某些信息)
本来是一样的实体,最后插入的一个或对个信息不一样
删除异常(丢失有用的东西)
在一些情况下,可能删除莫一行数据,会丢失一些数据
1.5.2:范式设计
确保每列的原子性。表示不可再分的最小数据单元
第一范式的基础上,每列都与主键有直接的关系。其他列都要依赖于主键。(即一个表描述意见事情)
第二范式的基础上,没列都和主键有直接的关系,但每列之间不存在依赖关系。
1.5.3:规范化和性能的关系
在实际开发过程中,既要考虑三大范式,避免数据的永裕和各种数据操作异常,又要考虑数据访问的性能,有时,为了减少表之间的连接,提高访问新能,允许适当的永裕,这是最合适的设计方案!!!
java数据库编程之数据库的设计的更多相关文章
- Java并发编程之并发代码设计
引子 之前的文章我们探讨了引发线程安全的原因主要是由于多线程的对共享内存的操作导致的可见性或有序性被破坏,从而导致内存一致性的错误.那么如何设计并发代码解决这个问题呐?我们一般使用这几种方式: 线程封 ...
- Java并发编程(2) AbstractQueuedSynchronizer的设计与实现
一 前言 上一篇分析AQS的内部结构,其中有介绍AQS是什么,以及它的内部结构的组成,那么今天就来分析下前面说的内部结构在AQS中的具体作用(主要在具体实现中体现). 二 AQS的接口和简单示例 上篇 ...
- Java并发编程(十)设计线程安全的类
待续... 线程安全的类 之前学了很多线程安全的知识,现在导致了我每次用一个类或者做一个操作我就会去想是不是线程安全的.如果每次都这样的考虑的话就很蛋疼了,这里的思路是,将现有的线程安全组件组合为更大 ...
- JAVA / MySql 编程—— 第一章 数据库的设计
1. 数据库设计:将数据库中的数据实体及这些数据实体之间的关系进行规划和结构化的过程: 良好的数据库设计: 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 糟糕 ...
- Java数据库编程、XML解析技术
数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...
- JAVA(六)数据库/网络编程/新IO
成鹏致远 | lcw.cnblog.com |2014-02-05 数据库 1.JDBC概述 JDBC(Java Database Connectivity,Java数据库连接)提供了一种与平台无关的 ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- Java面试题精选(二)线程编程、数据库理论和Jdbc部分
—— 线程编程.数据库理论和Jdbc部分内容 —— 数据库的开发应用想必是我们日常所碰到最多的知识点了,大致可分为:oracle.MySQL.SQL Server.Hadoop. NoSQL. ...
- java面向对象下:Java数据库编程
19.Java数据库编程: JDBC概述: JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...
随机推荐
- mvc中html导出成word下载-简单粗暴方式
由于工作需求,需要把html简历页导出成word下载.网上搜索了很多解决方案,基本都是用一些插件,然后写法也很麻烦,需要创建模板什么的. 固定替换值 代码一大堆.但是对于我的需求来说 并没有什么用 ...
- mysql:Linux系统下mysql5.6的安装卸载
1.1. 下载rpm包 要使用yum 安装mysql,需要mysql的yum仓库,先从官网下载适合你系统的仓库 http://dev.mysql.com/downloads/repo/yum/ 我的是 ...
- mysql数据类型double和decimal区别详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt336 实数是带有小数部分的数字.然而,它们不只是为了存储小数部分,也可以使用 ...
- ROS学习记录(二)————使用smartcar进行仿真(用.xacro文件来运行rviz)
我发现一个学习ROS系统的好网站: 创客智造http://www.ncnynl.com/ 这里面关于ROS的各个方面都有很详细的介绍. 这周,不,上周我对整个ROS是绝望的,我用一个一个下午的时间在敲 ...
- Angular+ionic2 web端 启动程序出现短暂 白屏或黑屏 的处理小妙招
在ionic2项目启动是会出现短暂的白屏或者黑屏,虽然很短,但是用户体验不太好.上网查了相关的资料,都是针对打包APP的解决办法,针对浏览器端使用的项目没有效果,所以自己写了样式,巧妙的避开这个问题, ...
- Beta阶段事后诸葛亮分析
1.总结的提纲内容 a. 项目管理之事后诸葛亮会 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要解决用户无意识花钱,无法清楚看见钱去 ...
- 个人作业2——英语学习APP的案例分析
第一部分:调研.评测 1.刚刚打开必应词典的时候,它给我的第一反应就是界面美观,最上面是一个查询框,下面有一些经典的句子.单词以及一些精选的文章,所有的功能都可以一目了然,看一眼就知道要怎么去使用,这 ...
- 展示博客(Beta阶段)
展示博客 0x00 团队成员 成员 博客地址 简介 黄建英 http://www.cnblogs.com/smilehjy/ beta阶段的新成员,负责前端界面调整 谢晓萍 http://www.cn ...
- C语言数据在内存分配
一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.程序结束时由编译器自动释放 ...
- 【Alpha】Daily Scrum Meeting——Day2
站立式会议照片 1.本次会议为第二次 Meeting会议: 2.本次会议在中午12:30,在陆大楼召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 每个人的工作分配 成 员 昨天已 ...