本课的学习目标

  • 定义关系型数据库关联的术语
  • 讨论主键的功能
  • 讨论外键的功能
  • 列出关系型数据库的优势
  • 描述星型架构和第三范式数据模型的区别

什么是数据库?
数据库是一个应用永久保存数据的集合表现在:

  • 逻辑关联
  • 共享
  • 受保护
  • 可管理

数据库包括逻辑关联的数据,这意味着数据库是为了特殊目的而设计的。数据库支持多用户共享。一个特性是很多用户经常为了不同的目的在使用它。数据库被访问控制权限所保护及管理,以维持它的集成性和价值。

逻辑的/关系型的模型

逻辑模型

  • 设计应保障使用方式无关性
  • 适应广泛的前端工具
  • 允许数据库更快的创建
  • 应保证数据量无关性
  • 组织数据来表达真实世界中的表单(关系型的)数据
  • 包含所有的企业应用用途范畴内的数据定义
  • 广泛性 - 逻辑模型是在任何RDBMS平台上的物理实现的模板

标准化

  • 把复杂数据结构弱化成简单的稳定的单一结构的过程
  • 从概念性数据模型上移除冗余的属性,键以及关系

关系型数据库

  • 用Table表示一个关系
  • 用Row表示一个元组
  • 用Column表示一个属性

第三范式 vs 星型架构

一个模型可以用范式进行精炼,一个范式模型包括:

  • 实体 - 一个数据表中的一行数据
  • 属性 - 列
  • 关系 - 数据表之间的

第一范式:一个实体实例的每一个属性只能有一个值,实体内不允许出现重复的组

第二范式:必须符合第一范式,一个实体内的非主键属性全部依赖主键属性,而不是其子集

第三范式:必须符合第二范式,同一个实体内,没有一个非键属性依赖于另一个非键属性

TD Database可以支持任何被SQL处理的数据模型;范式数据模型的一个优势是有能力支持未知的查询。

星型架构:

有时候也称星型连接架构,是一种最简单的数据仓库架构,星型架构由少量表组成(可能只有一个)关联着任意维度的数据表。星型架构是雪花架构的一种特殊形式。

星型架构的特点:Fact, 维度, 雪花

星型架构模型的特点:

  • 趋向于更少的实体
  • 提倡更高一级的反范式化

主键

主键规则:

主键唯一的标示表内的一行。一个主键是必须的,因为表内的每一行必须能够唯一的标示。

不允许重复的值。因为主键用于标示,所以主键不能为空。

主键的值不能改动。因为与其他实体间可能有外键。

主键可以包括多于一个的列。事实上,包括列的数量没有限制。

选择一个主键

一行中的一个列被称作那行的一个属性。数据库的设计者可以选择任何一个属性作为主键,但是根据以上的规则,很多属性不适合作为主键的候选。比如姓氏就不适合,很可能两个人都是一个姓氏,即使我们加上名字,也很可能出现重名重姓的人,而且有些人还会改名字。

有些设计者推荐使用系统赋予的整数序列作为主键,这样可以保证唯一性但是也会增加数据库的空间需求。

总结主键的特征:

  • 主键是每个表必须的
  • 一个表只能有一个主键
  • 主键可能由一个或多个列组成
  • 主键不能有重复的值
  • 主键不能为空Null
  • 主键是被认为永不改变的值

外键

外键标示表之间的关系

外键规则:

  • 外键是可选的
  • 一个表可能有多于一个外键
  • 一个外键可能由多于一个列组成
  • 外键允许出现重复的值
  • 外键允许空值Null
  • 外键的值可能改变
  • 每个外键的值必须存在于一个主键中

这些术语并不是Teradata特有的,他们是广泛意义上的关系型数据库概念。

用关系型数据库来回答问题

一个关系型数据库是一群表的集合,存储在一个单一安装的关系型数据库管理系统(RDBMS)。“管理系统”这个词说明这是一个关系型数据库使用一系列的软件提供附加的支持比如事务,安全性和报表。

数据的连接出现在表之间的数据值的匹配中,在关系型数据库理论中,这个称为连接(Join)

比如员工表和员工部门表中都有一个部门ID的列,这就允许数据库回答这样的问题:这个员工工作的部门的部门名称是什么?

关系型的优势

  • 比其他类型更灵活
  • 允许业务逻辑迅速的接受条件改变
  • 数据驱动 vs 应用驱动
  • 模块化业务,而不是流程化
  • 使得更容易建立应用因为数据已经做了大量工作
  • 一个单独的数据拷贝可以为多种目的服务
  • 支持面向终端用户计算的趋势
  • 理解简单
  • 无需知道访问路径
  • 牢固的建立在集合论中

学完这一课,进度就完成了14.9%,别问我是怎么算出来的。

Teradata 认证系列 - 3. 关系型数据库的概念的更多相关文章

  1. Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念

    Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...

  2. Teradata 认证系列 - 2. Teradata数据库总览

    Teradata (以下简称TD) 总览本课的学习目标 描述Teradata数据库产品的功能 知晓支持的操作系统 描述Teradata的并行架构 解释线性可扩展性 列出Teradata DBA永远不需 ...

  3. 关系型数据库基础概念:MySQL系列之开篇

    一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...

  4. Teradata 认证系列 - 1. TCPP这是个啥

    一看历史,好几年没发帖...正好最近在自学teradata认证(学也不一定学的完,最后也不一定去考,仅仅安慰一下不想碌碌无为的内心) 网上一搜,百度上的中文相关资料简直为0.这个不奇怪,毕竟都没什么人 ...

  5. 关系型数据库基本概念及MySQL简述

    数据库基本概念">关系型数据库基本概念 数据库: 对大量信息进行管理的高效解决方案. 按照数据结构来组织.存储和管理数据的库. 数据库系统(DBS,DATABASE SYSTEM): ...

  6. mysql之数据库基本概念(mysql学习笔记一)

    数据库系统   数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...

  7. 关系型数据库中主键(primary key)和外键(foreign key)的概念。

    刚接触关系型数据库的同学,会听过主键和外键的概念.这是关系型数据库的基本概念,需要清楚理解.今天我就以简洁的语言总结一下这个概念. 主键.一句话概括:一张表中,可以用于唯一标识一条记录的字段组(或者说 ...

  8. oracle配置数据库可恢复性(认证系列总结一)

    原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/10263246.html 接下来的n多天,将进入oracle认证系列的学习总结中,本该从asm ...

  9. Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用

    Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 原创 2017-04-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章介绍了一些基础,但都是静 ...

随机推荐

  1. Material使用06 自定义主题、黑夜模式\白天模式切换

    需求: 1 不使用materil依赖内建的主题,使用自己创建的主题 2 利用自己创建的主题实现白天模式和黑夜模式 1 自定义主题 1.1 创建自定义主题文件 them.scss // 引入materi ...

  2. linux中历史命令的一点发现

    在LINUX中的终端中输入命令之后,这些命令会被存储到一个文件中,在终端中按下 键盘上的向上的箭头就会显示出以前敲击过的命令,最关键的是重起电脑之后依然有效的,这点和 windows上的CMD有着很大 ...

  3. CODING 代码托管架构升级之路

    本文为 CODING 创始团队成员王振威在『CODING 技术小馆:上海站』的演讲实录. CODING 技术小馆,是由国内专业的一站式软件服务平台 CODING 主办的一系列技术沙龙.将邀请数位业内知 ...

  4. oracle开发so easy(一)

    如何让你的程序可以在oracle数据库和sqlserver数据库自由切换? 如何让你从跨数据库开发的不适中解脱出来? 跟我来吧,我们一起开始entity framework的开发之旅.是的,entit ...

  5. SQL笔记:基础篇

    1.BETWEEN AND (查询某个区间的数据) 例如:查询user表中年龄在15-30岁的人 SELECT * FROM user WHERE age between 15 and 30 2.IN ...

  6. Unity 分场景打包

    分场景打包步骤:导入unity中AB包后 1: 指定场景  2: 指定abname  3: 指定objinabname  4: 协同  5: 委托 void string unity 先引入命名空间  ...

  7. python numpy 判断ndarray 中是否有 nan

    numpy.isnan(myarray).any() 下面讨论了哪一种方法的速度最快 reference: stackoverflow.com/questions/911871/detect-if-a ...

  8. 洛谷P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

    P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 题目描述 Each of Farmer John's N (4 <= N <= 16) cows has a u ...

  9. 2017-10-3 清北刷题冲刺班p.m

    a [问题描述]你是能看到第一题的 friends 呢.——hja给你一个只有小括号和中括号和大括号的括号序列,问该序列是否合法.[输入格式]一行一个括号序列.[输出格式]如果合法,输出 OK,否则输 ...

  10. 解读人:朱月琴,Hippocampal proteomic alteration in triple transgenic mouse model of Alzheimer’s disease and implication of PINK 1 regulation in donepezil treatment

    文章中文名:阿尔茨海默病三联转基因小鼠模型的海马蛋白质组学改变及Donepezil治疗中PINK 1调节的意义 发表时间:(2019年4月) IF:3.95 单位:澳门大学,威斯康星大学,暨南大学,广 ...