关系型数据库设计——E-R图
一、数据管理技术的三个发展阶段:
1)人工管理阶段(20世纪50年代中期) 特点:数据不保存;应用程序管理数据;数据不共享;数据没有独立性;
2)文件系统阶段(20世纪50年代后—60年代)特点:数据以文件形式长期保存;文件系统管理数据;数据共享性差、冗余度大;数据独立性差;
3)数据库系统阶段(20世纪60年代—现在)特点:数据结构化;数据由DBMS统一管理与控制;数据共享性高、冗余度低;数据独立性高;
二、数据库管理系统的功能:
1)数据定义功能:由DBMS提供的数据定义语言(Data Definition Language,DDL)定义数据库中的数据对象。
2)数据操纵功能:由DBMS提供的数据操纵语言(Data Manipulation Language,DML)实现对数据库的查询、插入、删除和修改;
3)数据控制功能:由DBMS提供的数据控制语言(Data Control Language,DCL)实现数据保护和事务管理的功能,包括完整性、安全性、并发控制和数据库恢复;
4)数据库的建立与维护功能
三、概念模型(也称信息模型)——E-R图(Entity-Relationship Diagram)
概念结构设计即对现实世界进行抽象描述,在需求分析所得数据流图和数据字典的基础上,为计算机存储做准备;概念结构设计的内容即建立概念模型;描述概念模型最常用方法是E-R图或UML图方法。
主要概念:
实体(Entity):客观存在的各类事物;
属性(Attribute):实体所具有的特性;
联系(Relationship):不同实体集中实体之间的联系,也可以是同一实体集中实体间的联系;
联系的种类:1:1联系;1:N联系;M:N联系
用E-R图建立概念模型
局部的E-R图又称为局部视图,将多个局部视图E-R图合并成一张完整的E-R图的过程称为视图集成。视图集成过程中可以解决冲突和消除冗余;
分E-R图之间的三类冲突:
1)属性冲突
2)命名冲突
3)结构冲突:同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性,需要统一;
四、逻辑结构设计——E-R图向关系模型的转换
1)一个实体转换为一个关系模式;
实体的属性——>关系的属性
实体标识符——>关系的码
2)联系的转换
1:1联系——与任意一端对应的关系模式和并;
1:n联系——与n端对应的关系模式合并;
m:n联系——一个独立的关系模式
五、关系模式的优化
从以下几方面:
1)关系模式规范化
2)对关系模式进行必要的合并
3)进行合理的分解,包括水平分解、垂直分解
六、关系模式的存取方法选择
DBMS常用存取方法:
1)索引方法,目前主要是B+树索引方法
2)聚簇(cluster)方法
3)Hash方法
七、SQL数据库的三级结构/两级映像
三级模式体系结构:
两级映像:
外模式/模式映像
模式/内模式映像
1)数据的逻辑独立性
应用程序(外模式)与数据库的逻辑结构(模式)是相互独立的,即数据的逻辑结构发生改变,应用程序不用变。
2)数据的物理独立性
应用程序(外模式)与存储在磁盘上的数据库文件中的存储结构(内模式)是相互独立的,即数据文件的组织方式改变不需要修改应用程序。
注:数据库的存储结构有哪些?
欢迎交流与指正!*~* *~*
关系型数据库设计——E-R图的更多相关文章
- 数据库系统(四)---关系型数据库设计及E-R图
1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段 ...
- 基于E-R模型的关系型数据库设计方法
摘要 在管理信息系统开发中,数据库设计的目标是建立DBMS能识别的关系数据模型.而关系数据模型建立的基础是首先建立E-R模型,通过E-R模型才能转换为关系数据模型.如何建立E-R模型以及如何将E-R模 ...
- 关系型数据库查询语言 SQL 和图数据库查询语言 nGQL 对比
摘要:这篇文章将介绍图数据库 Nebula Graph 的查询语言 nGQL 和 SQL 的区别. 本文首发于 Nebula Graph 官方博客:https://nebula-graph.com.c ...
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
- 非关系型数据库Nosql的优缺点分析
Nosql的全称是Not Only Sql,Nosql指的是非关系型数据库,而我们常用的都是关系型数据库.就像我们常用的mysql,oralce.sqlserver等一样,这些数据库一般用来存储重要信 ...
- 初识关系型数据库(SQL)与非关系型数据库(NOSQL)
一.关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部分, 员工表 001 用户表,用户名.密码 分类表 和 商 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-4.在线教育后台数据库设计
笔记 4.在线教育后台数据库设计 简介:讲解后端数据库设计 ,字段冗余的好处,及常见注意事项 1.数据库设计: er图: 实体对象:矩形 ...
- [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF
一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢! 二.具体说明: 首先要明白”范 ...
- 关系型数据库与Key-value型数据库Mongodb模式设计对比
MongoDb 相比于传统的 SQL 关系型数据库,最大的不同在于它们的模式设计( Schema Design )上的差别,正是由于这一层次的差别衍生出其它各方面的不同. 我们可以简单的认为关系型数据 ...
随机推荐
- ASP.NET MVC Tips
1. _ViewStart.cshtml会在调用每个页面的时候执行,我们可以在页面内设置Layout页面,也可以在这个页面写一些逻辑来根据不同的情况引用不同的Layout页面,详情请参考此处:
- 常见HTTP状态200,304,403,404,503
下面提供 HTTP 状态码的完整列表.您也可以查看 W3C官方HTTP 状态码说明(英文). 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求 ...
- mysql导入大量数据时报MySQL server has gone away错误的解决办法
https://blog.csdn.net/eric520zenobia/article/details/77619469
- 【Leetcode】【Easy】Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...
- ThinkPHP5.0版本的优势在于:
更灵活的路由: 依赖注入: 请求缓存: 更强大的查询语法: 引入了请求/响应对象: 路由地址反解生成: 增强的模型功能: API开发友好: 改进的异常机制: 远程调试支持: 单元测试支持: 命令行工具 ...
- python入门9 条件语句
条件语句: if 条件为真: 执行语句块 (执行完结束不执行elif,else) elif 条件为真: 执行语句块 (执行完结束不执行else) else: 执行语句块 #coding:utf-8 # ...
- OC extern和变量
注意: extern只能用来声明全部变量,不能拿来定义变量 #include <stdio.h> // 第一种做法是将a定义在main函数的前面 // int a; // 完整地声明全部变 ...
- IOS VFL语言(页面布局)
● 什么是VFL语言 ● VFL全称是Visual Format Language,翻译过来是“可视化格式语言” ● VFL是苹果公司为了简化Autolayout的编码而推出的抽象语言 VFL ...
- 漫谈C++:良好的编程习惯与编程要点(转载)
这个博主写的文章真是细腻,全面,严谨,应当多读几回 原文http://www.cnblogs.com/QG-whz/p/5517643.html 阅读目录 以良好的方式编写C++ class Clas ...
- Android(java)学习笔记45:深入分析Java ClassLoader原理
1. 前言: Android中的动态加载机制能更好的优化我们的应用,同时实现动态的更新,这就便于我们管理我们的应用,通过插件化来减轻我们的内存以及CPU消耗,在不发布新版本的情况下能更新某些模块. 当 ...