关系型数据库设计——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 )上的差别,正是由于这一层次的差别衍生出其它各方面的不同. 我们可以简单的认为关系型数据 ...
随机推荐
- Vue element-ui:滚动条 分页 禁用选项
1.滚动条设置: <el-scrollbar style="height:100%;">.......</el-scrollbar> 默认会同时出现水平和垂 ...
- 支持触屏的zepto轮播图插件
占个座,有时间再写,呵呵 关于zepto.js,官方标准版是不支持touch的.可以去github下载压缩包,里面有所有支持的模块.我用的zepto.js,是经过打包的,包括polyfill zept ...
- sort属性
学习文章---链接 总结笔记 ①sort是Array.prototype的属性, ②如果不写入参数,则按照转换为的字符串的每个字符的unicode位点进行排序, ③如果传入一个比较函数sort(fun ...
- vue 路由权限
import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorl ...
- Java 重写hashCode() 时为什么要用 31 来计算
在OSChina 中看到了一篇文章<Java 中正确使用 hashCode 和 equals 方法>,看到 hashCode 的方法体内的31比较有意思. 在Stackoverflow上找 ...
- toMapFromStage layerDefinitions ClassBreakRenderer
class Map 方法 toMapFromStage 用于把屏幕坐标转换为地理坐标 public function toMapFromStage(stageX:Number, stageY:Numb ...
- SQL-MySQL使用教程-对MySQL的初步尝试
出现问题:中文无法显示.存储:不对任何数据做检测,只管理数据类型.
- OC category(分类)
// ()代表着是一个分类 // ()中的Test代表着分类的名称 @interface Student (Test) // 分类只能扩展方法,不能增加成员变量 - (void)test2; @end
- Codeforces 225E 梅森素数
注:梅森素数,数组表示的是2^n-1的n,指数. #include <stdio.h> #include <math.h> ; ; typedef long long ll; ...
- HDU 5258 数长方形【离散化+暴力】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=5258 数长方形 Time Limit: 2000/1000 MS (Java/Others) Me ...