[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 ...
随机推荐
- PAT (Advanced Level) Practice 1042 Shuffling Machine (20 分) 凌宸1642
PAT (Advanced Level) Practice 1042 Shuffling Machine (20 分) 凌宸1642 题目描述: Shuffling is a procedure us ...
- .NET Request对象介绍
Request对象用于检索从浏览器向服务器所发送的请求信息.它提供对当前页请求的访问,包括标题,Cookie,客户端证书等等.它也与HTTP协议的请求消息对应 Request常用的属性 属性 具体内容 ...
- 对象存储服务MinIO安装部署分布式及Spring Boot项目实现文件上传下载
目录 一.MinIO快速入门 1. MinIO简介 2. CentOS7更换成阿里云镜像 3. 安装 3.1 下载 3.2 运行测试 4. 配置脚本执行文件 4.1 创建配置执行文件 4.2 执行 二 ...
- 使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神
使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神 前言 接上一篇 使用 EPPlus 封装的 excel 表格导入功能 (一) 前一篇的是大概能用但是 ...
- 关于Vim/Neovim/SpaceVim的一些思考
1 前言 最近看到了Neovim以及SpaceVim,于是上手试了一下. 2 Neovim与SpaceVim Neovim是Vim的一个分支,具有更加现代的GUI.嵌入式以及脚本化的终端.异步工作控制 ...
- (十四)docker exec 详解
1. 作用 在运行的容器中执行命令 2. 语法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: -d :分离模式: 在后台运行 ...
- day13.常用模块
一.time与datetime模块 1.1time 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计 ...
- C - The Suspects POJ - 1611(并查集)
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...
- 仅用一句SQL更新整张表的涨跌幅、涨跌率
问题场景 各大平台店铺的三项评分(物流.服务.商品)变化情况: 商品每日价格的变化记录: 股票的实时涨跌浮: 复现场景 表:主键ID,商品编号,记录时的时间,记录时的价格,创建时间. 问题:获取每个商 ...
- 1.8.5- input按钮组