本课的学习目标

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

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

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

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

逻辑的/关系型的模型

逻辑模型

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

    安装完必备软件后,便可安装sharepoint Foundation 2013

  2. JSP注释

    ------------------siwuxie095                                 在 JSP 文件中可以使用 HTML 注释     HTML 注释使用 < ...

  3. p2345 奶牛集会

    传送门 题目 约翰的N 头奶牛每年都会参加“哞哞大会”.哞哞大会是奶牛界的盛事.集会上的活动很 多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为Xi,没有两头奶 ...

  4. p2590&bzoj1036 树的统计

    传送门(洛谷) 传送门(bzoj) 题目 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值 ...

  5. Webservice 或者HttpRequest请求的时候提示 “指定的注册表项不存在”错误 解决方案

    今天又遇到神奇的事情,在使用WebService的时候居然提示“指定的注册表不存在.” The specified registry key does not exist. Google后发现,原来是 ...

  6. 《Linux内核设计与实现》读书笔记(一)-内核简介

    本篇简单介绍内核相关的基本概念. 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核   原理 优势 劣势 单内核 整个内核都在一个大内核地址空间上运行. 1. 简单.2. 高效:所有内核都 ...

  7. Java 概述及安装使用

    Java是什么 概述 java是一种面向对象编程语言,不过经过多年的发展,现在已经演变为了一套强大的技术体系.Java设计者们将Java划分为3种结构独立但却彼此依赖的技术体系分支,它们分别对应着不同 ...

  8. CEPH安装教程(中)

    NTP服务配置 NTP客户端配置 # vim /etc/ntp.conf server 92.0.0.250 ### 手动同步下时间 # ntpdate -u 92.0.0.250 ### 启动服务 ...

  9. linux 内核与用户空间通信机制netlink初探

      1.Linux进程概述 Linux中的进程间通信机制源自于Unix平台上的进程通信机制.Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上各有所不同,前者形成了运行 ...

  10. 牛客网小白月赛6C(DFS,思维)

    #include<bits/stdc++.h>using namespace std;vector<int>tree[1000010];int sum=0;int dfs(in ...