本课的学习目标

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

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

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

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

逻辑的/关系型的模型

逻辑模型

  • 设计应保障使用方式无关性
  • 适应广泛的前端工具
  • 允许数据库更快的创建
  • 应保证数据量无关性
  • 组织数据来表达真实世界中的表单(关系型的)数据
  • 包含所有的企业应用用途范畴内的数据定义
  • 广泛性 - 逻辑模型是在任何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. Convolutional Neural Networks 笔记

    1 Foundations of Convolutional Neural Networks 1.1 cv问题 图像分类.目标检测.风格转换.但是高像素的图片会带来许多许多的特征. 1.2 边缘检测( ...

  2. cisco 2901 配置拨号上网

    1.输入en,然后输入密码确认后按conf t2.Router(config)# vpdn enable        interface dialer 1   // 进入拨号器13.Router(c ...

  3. linux 安装 elasticsearch

    安装 Java 8 当你提前在使用 Elasticsearch,你开始寻找更好的 Java 性能和兼容性时,您可以选择安装 Oracle 的专有 Java (Oracle JDK 8). 将 Orac ...

  4. SpringSecurity04 利用JPA和SpringSecurity实现前后端分离的认证和授权

    1 环境搭建 1.1 环境说明 JDK:1.8 MAVEN:3.5 SpringBoot:2.0.4 SpringSecurity:5.0.7 IDEA:2017.02旗舰版 1.2 环境搭建 创建一 ...

  5. 《精通Spring4.X企业应用开发实战》读后感第七章(创建增强类)

  6. p3627&bzoj1179 抢掠计划(ATM)

    传送门(洛谷) 传送门(bzoj) 题目 Siruseri 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 Siruser i 银行的 ATM 取款机.令人奇怪的 ...

  7. [MySQL] Data too long for column 'title' at row 1

    李刚轻量级JavaEE第六章的坑..艹李刚自己有没试过这些代码的啊,6.4这一份HqlQuery.java里需要的表,根本就跟他提供的sql脚本对不上啊..坑爹啊,而且字符编码集也有问题. 出现这个原 ...

  8. MySql中的锁(表锁,行锁)

    锁是计算机协调多个进程或春线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU,RAM,I/O)的争用之外,数据也是一种工许多用户共享的资源.如何保证数据并发访问的一致性,有效性是所有数据 ...

  9. hdu1047

    #include<stdio.h>#include<string>#include<iostream>using namespace std; //高精度加法//只 ...

  10. 【QtAV】QtAV中的工厂模式

    QtAV中的各个模块大量使用的工厂模式,下面对其实现进行介绍. 工厂模式的使用 以 VideoRenderer 类为例子,他含有下面3个工厂模式相关的方法,Register方法用于给一个产品<c ...