[DB] 关系型数据库
名词
- 数据库(database):保存有组织的数据的容器,是通过DBMS创建的容器
- 表(table):某种特定类型数据的结构化清单
- 元组(tuple):行,一条数据库记录,对应一个事物
- 属性(property):列,字段,对应事物的一个特征
- 关系:元组的集合,即数据库表
- 关系模型:由数据结构、关系操作集合、完整性约束组成
- 数据库管理系统(DBMS):一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,如MySQL,ORACLE等
- 关系型数据库:建立在关系模型基础上的数据库,由多张能相互连接的二维行列表格组成,如MySQL
- 关系型数据库管理系统(RDBMS):管理关系数据库,并将数据逻辑组织的系统
- MySQL:一种RDBMS,采用SQL语言访问数据库,优点有体积小、速度快、成本低、开源等,适用于中小型网站开发
- SQL(Structured Query Language):一种介于关系代数和关系演算之间的结构化查询语言,用于操作关系型数据库
- 主键(primary key):一列,其值能唯一标识表中每一行
- 外键:另一个表的主键,用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性
- 关键字:
- 关系代数
- 并,交,差
- 笛卡尔积:列数相加,行数相乘
- 选择,投影
- 连接:等值连接,自然连接
- 除法
- 关系演算
- ACID
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
- 范式:设计关系数据库时,遵从不同的规范要求
- 第一范式:一个主键确定一行,每个单元格只能有一个值
- 第二范式:在第一范式的基础上,所有属性仅仅依赖于主键
- 第三范式:在第二范式的基础上,表之间不存在依赖传递
数据库设计
- 需求分析
- 概念设计(E-R图)
- 逻辑设计(E-R图转换成关系数据模型)
- 物理设计
- 建立、测试
- 运行、维护
概念设计
- 概念模型(CDM Conceptual Data Model):从现实世界抽象出来的实体概念。如学生选课,实体模型是“学生”和“课程”
- 概念设计意义:需求分析阶段所得到的应用需求应该首先抽象成信息世界的结构,才能更好地、更准确地用某一DBMS实现
- 关系数据模型(逻辑结构):实体间的关系。包括层次模型(树)、网状模型(图)、关系模型(表格)
- E-R图:实体-关系图(Entity-Relationship Diagram);三要素:实体、属性、关系;矩形表示实体,椭圆表示属性,菱形表示实体间的关系
逻辑设计
- 数据库的逻辑结构设计:逻辑结构设计的任务就是将概念结构设计阶段设计好的全局E-R图转换成DBMS产品所支持的数据模型(关系模型),并进行规范化和优化,然后为每个应用设计外模式
- 关系模型范式化:按第一、二、三范式对关系模型进行分解,降低数据冗余
物理设计
- 物理模型(PDM Physical Data Model):关系型数据库中对象存储的表。可通过概念模型创建,或直接创建
- 物理结构设计:数据库在物理设备上的存储结构和存取方法就称为数据库的物理结构
- 确定物理结构:存取方法和存储结构
- 评价物理结构:时间、空间效率
工具
- PowerDesigner
- 一款数据库设计软件,可从概念数据模型和物理数据模型两个层次对数据库进行设计
- 安装:https://blog.csdn.net/tgbyn/article/details/72809116
- 教程:https://www.cnblogs.com/biehongli/p/6025954.html
- Swing
- Java的应用程序界面开发工具包
参考
基本概念
https://www.cnblogs.com/fudashi/p/6856628.html
数据库设计
https://blog.51cto.com/9291927/2087925
一小时学会mysql
https://www.cnblogs.com/xuanbjut/p/10407028.html
外键
https://blog.csdn.net/bingqingsuimeng/article/details/51595560
E-R图
https://blog.csdn.net/q547550831/article/details/47186693
从E-R图到关系模型
https://wenku.baidu.com/view/77a59f04534de518964bcf84b9d528ea80c72f37.html#
https://blog.csdn.net/HaoDaWang/article/details/78098937
https://blog.csdn.net/Firehotest/article/details/52412865
https://blog.csdn.net/cunfen6312/article/details/107684536
[DB] 关系型数据库的更多相关文章
- 非关系型数据库(NoSql)
最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...
- MongoDB学习笔记(二:入门环境配置及与关系型数据库区别总结)
一.下载及安装MongoDB MongoDB下载官网链接:http://www.mongodb.org/downloads 具体安装步骤教程:http://www.shouce.ren/api/vie ...
- [MongoDB]MongoDB的优缺点及与关系型数据库的比较
汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...
- 数据库:mongodb与关系型数据库相比的优缺点 (转)
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值 ...
- 数据库:mongodb与关系型数据库相比的优缺点
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精 ...
- (转)Mongodb相对于关系型数据库的优缺点
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值 ...
- MongoDB 与传统关系型数据库mysql比较
与关系型数据库相比,MongoDB的优点: 转载自 http://blog.sina.com.cn/s/blog_966e430001019s8v.html①弱一致性(最终一致),更能保证用户的访问 ...
- Python信息采集器使用轻量级关系型数据库SQLite
1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...
- BDB (Berkeley DB)简要数据库(转载)
使用最近DBD.然后搜了下相关资料,首先公布的是一门科学: 转会http://www.javaeye.com/topic/202990 DB综述DB最初开发的目的是以新的HASH訪问算法来取代旧的hs ...
随机推荐
- XML数据持久化学习笔记
一.XML基础语法 1.XML结构:XML是一种树结构的文本 2.XML注释:格式:<!--在其中书写注释-->,在注释中可以单行注释也可以多行注释 3.固定内容:<?xml ver ...
- RabbitMQ 入门 (Go) - 4. 使用 Fanout Exchange 做服务发现(上)
到目前为止,我们项目的结果大致如下: 传感器生成的模拟数据(包含传感器名称.数据.时间戳)是通过传感器在运行时动态创建的 Queue 来发送的.这些 Queue 很难直接被发现. 为了解决这个问题,我 ...
- 动态语言 VS 静态语言
静态语言 VS 动态语言 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数.对象.甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化.通俗点说就是在运行时代码可以根据某些条件改变自 ...
- 解决JDK9以上的非法反射访问警告
1 问题描述 JDK9以上很多库都有这种非法反射访问的警告,比如protostuff: 解决方法两个: JDK降级 添加JVM参数 2 原因 降到JDK8能解决以上问题. 但是这不是本文的重点. 先说 ...
- Linux入门之基本的概念、安装和操作
目录 Linux基本概念 Linux的安装 虚拟机安装CentOS7 CentOS设置网络 Linux基本操作命令 文件目录操作命令 进程操作命令 文本操作命令 Linux权限操作 用户和组操作命令 ...
- HashSet、CopyOnWriteArraySet、ConcurrentSkipListSet源码解析(JDK1.8)
目录 HashSet源码解析 HashSet简单使用的demo HashSet中的变量 HashSet的构造函数 HashSet的add方法 HashSet的iterator方法 HashSet的si ...
- HACK TEH BOX - Under Construction(JWT密钥混淆 + SQL注入)
HACK TEH BOX - Under Construction(JWT密钥混淆 + SQL注入) 目录 1. JWT密钥混淆 2. 环境 3. Challenge 4. Walkthrough 1 ...
- Qt开发技术:Qt拽拖开发(一)拽托框架详解及Demo
前话 Qt中的拽拖操作详细介绍. Demo 图片拽拖 控件拽拖 窗口拽拖 拽托框架(高级开发) 拖放(Drag and Drop) 拖放提供了一种简单的可视 ...
- 我的自定义多交互live2d折腾经历
在@m0d1 大佬的督促(?)下有了这篇复盘.不过因为可能很多地方讲得不全面+理解不够深入,故不打算把这篇当成是教程/指南,那就算是一个指北吧= = (划重点:不是教程!不是教程!不是教程! 省流简介 ...
- 1091 Acute Stroke
One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...