DAMA试题分析:主键有什么特性?
编 辑:彭文华
来 源:大数据架构师(ID:bigdata_arch)
彭友萌好,我是老彭友
嗯,上周末我去考了个CDGA,其中有道题出重复了(15和55题),题目大概是这样的,你也来选一下看看结果:
就是这样一道看上去很简单的题,结果引起一场超级大讨论。就这个问题都能吵半天,我也是彻底无语了...
不过看完他们的争论,我又凌乱了...
答案一
主键允许为空,选A。具体看图:
可以为空,铁证如山!有什么可以反驳的???
答案二
主键可以修改,选B。具体如图:
可以修改,铁证如山!有什么可以反驳的???
答案三
主键可以重复,选C。具体如下:
主键不可为空或Null值,不可修改,允许联合主键。但是可以重复使用。
这个。。。感觉很牵强啊。主键是唯一ID,肯定不能重复。但是“重复使用”的概念和重复是两码事啊。
到底选什么?
我们回到题目上来。我们知道,考试是考试,实操是实操。我们不能拿一MySQL数据库实现的情况来逆向判断主键的特性,就像你不能拿一只长着5条腿的蛤蟆得出所有蛤蟆都是5条腿一样。
回头我设计一个数据库,不允许联合主键的存在,那是不是D选项也错了?所以,这道题考的不是实操,而是主键的定义。
我们看看主键的定义:
主关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键,又称主码。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
我也找了一下其他书上的定义:
《数据库系统设计》
《数据库系统概论》
从上面的定义和书上所述,主键的定义关键字是“唯一”、“确定一个实体”、“一个或多个字段”。
很明显,唯一代表着不允许重复;确定一个实体决定了主键不允许为空;联合主键就不用说了。所以,ACD都对,唯有
B:主键不允许修改
这条是错误的。所以选B。反正我两道题都选了B,如果我CDGA过了,就算了。如果没过,我就去找汪主席聊聊去
扩展阅读:公众号“大数据架构师”后台回复“DMBOK”即可下载彭友会的徐总他们组织整理的【DMBOK2200个知识点】。
更多精彩:
带你去看快手数据管治技术交流会-模型规范
OKR的完全落地实践手册
一口气说穿数据中台-给你架构师的视角
数据项目成败的关键-战略、规划、组织与制度!
数据资产建设的灵魂三连问
数据中台和ERP是啥关系?不都是信息系统吗?
修炼:职场PUA与反PUA
排版 | 老彭
审校 | 老彭 主编 | 老彭
DAMA试题分析:主键有什么特性?相关推荐
- 【Qt】使用sqlite3数据库时,主键自增和获取自增后的主键的
创建数据表格,设置主键自增 创建数据库时,启用主键自增加特性 Create table testTable (id INTEGER PRIMARY KEY AUTOINCREMENT,.... 注意事 ...
- mysql 主键 最佳实践_设计套路:Mysql主键的选取
最近在对一些大表进行优化,发现主键和索引设计都有争议,就此从原理上分析主键设计该如何选取. Mysql的数据结构 Mysql是由B+树构成,搞清楚下面两个问题,就知道为什么用B+树了. 1.B+Tre ...
- mysql 联合主键 加锁_MySQL 加锁处理分析
背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题.我在工作过程中,经常会有同事咨询这方面的问题.同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题.本文,准备 ...
- MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...
- MySQL-count(*)、count(1)、count(主键)、count(非索引列)、count(索引列)性能分析
本文主要讨论的是count()函数在没有where的情况下统计性能 环境: MySQL 数据库5.7.23 服务器4核8G 带宽5M 1000W数据 为防止缓存影响,测试前已经将缓存关闭 一: 先说结 ...
- mysql纵表 主键_数据库面试题-sql语句
原标题:数据库面试题-sql语句 1,写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的. 答: → 解1: select top ...
- oracle联合主键效率,Oracle主键与复合主键的性能分析
总结: 1.主键和复合主键,查询性能相同(索引高度相同,恰当的运用索引). 2.主键和复合主键,(update,insert)性能不同(因为复合主键会用更多的块来创建索引,所以update,inser ...
- MybatisPlus:SQL语句打印、SQL分析、自定义主键值策略填充(IdType.INPUT)、动态表名、多租户、枚举、类型处理器、连表自定义SQL(使用wrapper)
文章目录 1. 简单使用以及配置 - 带分页配置 2. 用法 2.0 Wrapper属性 2.1 @TableId - 自定义主键生成策略 2.2 @TableField - 自定义字段值填充 2.3 ...
- mysql主键自增长空缺_Mysql 主键自增长auto_increment问题分析
本节内容: Mysql 主键自增长 在mysql数据库中,主键由auto_increment实现自增长,若自定义函数来表示auto_increment的话可以如下: 复制代码 代码示例: create ...
最新文章
- php多个 r n如何过滤,php怎么去掉r n
- 布隆过滤器Redis缓存穿透雪崩击穿热点key
- java常用框架总结
- P4144 大河的序列
- apache.camel_Apache Camel 2.9发布–十大变化
- Java面向对象编程篇6——注解与反射
- jQuery教程09-子元素筛选选择器
- ajax跨域,这应该是最全的解决方案了 1
- Linux下手动挂载新增磁盘
- OpenTSDB的读写API
- C语言中,int、char、float、double各占多少字节
- 用命令行建立空白的simulink模型(mdl文件)(Matlab)
- 计算机1级题库软件,计算机一级软件哪个好_计算机一级刷题软件_计算机一级试题软件...
- vue的Des加密解密
- UG NX 12同步建模:调整面大小
- 如何用vmware虚拟服务器,虚拟机怎么用,详细教您vmware虚拟机怎么用
- 支付宝-线上资金授权(小程序)
- 计算机软件能删除吗,怎么彻底清除电脑软件鲁大师?卸载对系统有影响吗?
- QQ微信可以上网,但是google浏览器上不了网怎么办?
- Jquery引用在线CDN公共资源库
热门文章
- type在python中的用法_Python type的使用
- 蓝桥杯java-排序(填空题2020省赛)
- 2010-02-28 传智播客—Android(三)数据存储之三SQLite嵌入式数据库
- 用ImgBurn做了一张可以安装所有版本的Win7安装盘
- 2022计算机专硕877考研经历
- 软件测试基础——非功能测试入门
- 云之讯——简单的短信验证 PHP版
- 视频宽高比和分辨率的关系(转)
- 怎么让模糊的数字变清楚_后期处理 怎么覆盖视频中的数字或某个文字?模糊处理视频中某几个字中的1个字...
- [python]打飞机小游戏代码