Teradata 认证系列 - 3. 关系型数据库的概念
本课的学习目标
- 定义关系型数据库关联的术语
- 讨论主键的功能
- 讨论外键的功能
- 列出关系型数据库的优势
- 描述星型架构和第三范式数据模型的区别
什么是数据库?
数据库是一个应用永久保存数据的集合表现在:
- 逻辑关联
- 共享
- 受保护
- 可管理
数据库包括逻辑关联的数据,这意味着数据库是为了特殊目的而设计的。数据库支持多用户共享。一个特性是很多用户经常为了不同的目的在使用它。数据库被访问控制权限所保护及管理,以维持它的集成性和价值。
逻辑的/关系型的模型
逻辑模型
- 设计应保障使用方式无关性
- 适应广泛的前端工具
- 允许数据库更快的创建
- 应保证数据量无关性
- 组织数据来表达真实世界中的表单(关系型的)数据
- 包含所有的企业应用用途范畴内的数据定义
- 广泛性 - 逻辑模型是在任何RDBMS平台上的物理实现的模板
标准化
- 把复杂数据结构弱化成简单的稳定的单一结构的过程
- 从概念性数据模型上移除冗余的属性,键以及关系
关系型数据库
- 用Table表示一个关系
- 用Row表示一个元组
- 用Column表示一个属性
第三范式 vs 星型架构
一个模型可以用范式进行精炼,一个范式模型包括:
- 实体 - 一个数据表中的一行数据
- 属性 - 列
- 关系 - 数据表之间的
第一范式:一个实体实例的每一个属性只能有一个值,实体内不允许出现重复的组
第二范式:必须符合第一范式,一个实体内的非主键属性全部依赖主键属性,而不是其子集
第三范式:必须符合第二范式,同一个实体内,没有一个非键属性依赖于另一个非键属性
TD Database可以支持任何被SQL处理的数据模型;范式数据模型的一个优势是有能力支持未知的查询。
星型架构:
有时候也称星型连接架构,是一种最简单的数据仓库架构,星型架构由少量表组成(可能只有一个)关联着任意维度的数据表。星型架构是雪花架构的一种特殊形式。
星型架构的特点:Fact, 维度, 雪花
星型架构模型的特点:
- 趋向于更少的实体
- 提倡更高一级的反范式化
主键
主键规则:
主键唯一的标示表内的一行。一个主键是必须的,因为表内的每一行必须能够唯一的标示。
不允许重复的值。因为主键用于标示,所以主键不能为空。
主键的值不能改动。因为与其他实体间可能有外键。
主键可以包括多于一个的列。事实上,包括列的数量没有限制。
选择一个主键
一行中的一个列被称作那行的一个属性。数据库的设计者可以选择任何一个属性作为主键,但是根据以上的规则,很多属性不适合作为主键的候选。比如姓氏就不适合,很可能两个人都是一个姓氏,即使我们加上名字,也很可能出现重名重姓的人,而且有些人还会改名字。
有些设计者推荐使用系统赋予的整数序列作为主键,这样可以保证唯一性但是也会增加数据库的空间需求。
总结主键的特征:
- 主键是每个表必须的
- 一个表只能有一个主键
- 主键可能由一个或多个列组成
- 主键不能有重复的值
- 主键不能为空Null
- 主键是被认为永不改变的值
外键
外键标示表之间的关系
外键规则:
- 外键是可选的
- 一个表可能有多于一个外键
- 一个外键可能由多于一个列组成
- 外键允许出现重复的值
- 外键允许空值Null
- 外键的值可能改变
- 每个外键的值必须存在于一个主键中
这些术语并不是Teradata特有的,他们是广泛意义上的关系型数据库概念。
用关系型数据库来回答问题
一个关系型数据库是一群表的集合,存储在一个单一安装的关系型数据库管理系统(RDBMS)。“管理系统”这个词说明这是一个关系型数据库使用一系列的软件提供附加的支持比如事务,安全性和报表。
数据的连接出现在表之间的数据值的匹配中,在关系型数据库理论中,这个称为连接(Join)
比如员工表和员工部门表中都有一个部门ID的列,这就允许数据库回答这样的问题:这个员工工作的部门的部门名称是什么?
关系型的优势
- 比其他类型更灵活
- 允许业务逻辑迅速的接受条件改变
- 数据驱动 vs 应用驱动
- 模块化业务,而不是流程化
- 使得更容易建立应用因为数据已经做了大量工作
- 一个单独的数据拷贝可以为多种目的服务
- 支持面向终端用户计算的趋势
- 理解简单
- 无需知道访问路径
- 牢固的建立在集合论中
学完这一课,进度就完成了14.9%,别问我是怎么算出来的。
Teradata 认证系列 - 3. 关系型数据库的概念的更多相关文章
- Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...
- Teradata 认证系列 - 2. Teradata数据库总览
Teradata (以下简称TD) 总览本课的学习目标 描述Teradata数据库产品的功能 知晓支持的操作系统 描述Teradata的并行架构 解释线性可扩展性 列出Teradata DBA永远不需 ...
- 关系型数据库基础概念:MySQL系列之开篇
一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...
- Teradata 认证系列 - 1. TCPP这是个啥
一看历史,好几年没发帖...正好最近在自学teradata认证(学也不一定学的完,最后也不一定去考,仅仅安慰一下不想碌碌无为的内心) 网上一搜,百度上的中文相关资料简直为0.这个不奇怪,毕竟都没什么人 ...
- 关系型数据库基本概念及MySQL简述
数据库基本概念">关系型数据库基本概念 数据库: 对大量信息进行管理的高效解决方案. 按照数据结构来组织.存储和管理数据的库. 数据库系统(DBS,DATABASE SYSTEM): ...
- mysql之数据库基本概念(mysql学习笔记一)
数据库系统 数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
- 关系型数据库中主键(primary key)和外键(foreign key)的概念。
刚接触关系型数据库的同学,会听过主键和外键的概念.这是关系型数据库的基本概念,需要清楚理解.今天我就以简洁的语言总结一下这个概念. 主键.一句话概括:一张表中,可以用于唯一标识一条记录的字段组(或者说 ...
- oracle配置数据库可恢复性(认证系列总结一)
原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/10263246.html 接下来的n多天,将进入oracle认证系列的学习总结中,本该从asm ...
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 原创 2017-04-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章介绍了一些基础,但都是静 ...
随机推荐
- 网络编程之socket编程
TCP/IP协议 网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程).这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程 ...
- 【总结整理】webstorm插件使用
<ul> <li><a href="#">1F 男装</a></li> <li><a href=&qu ...
- SSM集成shiro 致使Controller无法自动注册service
由于shiro在web.xml中配置属于过滤器,其中在web.xml中的加载顺序为: <context-param>(上下文) > listener > filter > ...
- Windows上python + selenium + Firefox浏览器的环境配置
1.python安装 我的电脑是32位的,安装了Python 3.5.4版本其它安装版本 2.python环境变量配置 将”C:\Program Files\Python35",”C:\Pr ...
- 13.Weblogic任意文件上传漏洞(CVE-2018-2894)复现
Weblogic任意文件上传漏洞(CVE-2018-2894)复现 漏洞背景 WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限.两个页面分别为/ws_utc/be ...
- python测试模块-pytest介绍
1.pytest介绍 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 它具有如下特点: •非常容易 ...
- Python数据聚合和分组运算(2)-Data Aggregation
在上一篇博客里我们讲解了在python里运用pandas对数据进行分组,这篇博客将接着讲解对分组后的数据进行聚合. 1.python 中经过优化的groupy方法 先读入本文要使用的数据集tips. ...
- js原生实现轮播图效果(面向对象编程)
面向对象编程js原生实现轮播图效果 1.先看效果图 2.需要实现的功能: 自动轮播 点击左右箭头按钮无缝轮播 点击数字按钮切换图片 分析:如何实现无缝轮播? 在一个固定大小的相框里有一个ul标签,其长 ...
- 2018杭电多校第五场1002(暴力DFS【数位】,剪枝)
//never use translation#include<bits/stdc++.h>using namespace std;int k;char a[20];//储存每个数的数值i ...
- /etc/hosts文件修改后如何生效
修改/etc/hosts之后正常情况应该是保存之后立即生效的,但是有时不是.使用uname -a 可以查看hostname是多少,就可以知道是否修改生效了.如果没有这时的策略有:1) 重启机器2) 重 ...