JavaGuide知识点整理——数据库基础知识总结

什么是数据库,数据库管理系统,数据库系统,数据库管理员?

  • 数据库:数据库(DataBase 简称DB)就是信息的集合或者说数据库是由数据库管理系统管理的数组的集合。
  • 数据库管理系统:数据库管理系统(Database Management System 简称 DBMS)是一种早从和管理数据库的大型软件,通常用于建立,使用和维护数据库。
  • 数据库系统:数据库系统(Data Base System,简称 DBS)通常由软件,数据库和数据库管理员组成。
  • 数据库管理员:数据库管理员(Database Administrator, 简称 DBA)负责全面管理和控制数据库系统。
    数据库系统基本构成

什么是元组,码,候选码,主码,外码,主属性,非主属性?

  • 元组:是关系数据库中的基本概念,关系是一张表。表中的每行就是一个元组,每列就是一个属性。在二维表里,元组也称为行。
  • 码:嘛就是唯一标识实体的属性,对应表中的列。
  • 候选码:若关系中的某一属性或者属性组的值能唯一的标识一个元组,而其任何子集都不能再标识,则称该属性组为候选码。
  • 主码:主码也叫主键。主码是从候选码中选出来的。一个实体可以有多个候选码,但是只能有一个主码。
  • 外码:也叫外键。如果一个关系中的一个属性是另外一个关系中的主码,则这个属性为外码。
  • 主属性:候选码中出现过的属性称为主属性。
  • 非主属性:不包含在任何一个候选码中的属性称为非主属性。

主键和外键有什么区别?

  • 主键:用于唯一标识一个元组。不能有重复,不允许为空。一个表只能有一个主键。
  • 外键:外键用来和其他表建立联系用,外键是另一表的主键,外键是可以有重复的。可是是空值,可以有多个。

为什么不推荐使用外键与级联?

阿里巴巴开发手册这样说:[强制]不得使用外键与级联,一切外键概念必须在应用层解决。
其实不推荐使用外键的原因主要有几点:

  1. 增加了复杂性
  2. 增加了额外工作
  3. 对分库分表不友好(分库分表下外键无法生效)

其实总结起来就是对数据库的压力会加大。尤其是分库分表的情况下是无法使用的,而且级联更新是强阻塞,存在数据库更新风暴的风险,外键影响数据库的插入速度。相对而言我们把压力放在代码层会更好。

什么是ER图?

ER图也成为实体-联系图。提供了表示实体类型,属性和联系的方法。用来描述现实世界的概念模型。
在ER图中有如下四个成分:

  • 矩形框:表示实体,在框中记入实体名。
  • 菱形框:表示联系,在框中记入联系名。
  • 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
  • 连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。

下面是一个学生选课的ER图:


image.png

对应的数据库实际的关系模型如下:


image.png

这个其实我认为很容易学,而且作用是为了让自己逻辑清晰。感兴趣的可以自己去查下画法。

数据库范式

1NF(第一范式):
属性不能再被分割,也就是说这个字段只能是一个值,不能再被分为多个其他的字段了。INF是所有关系型数据库的最基本要求,也就是说关系型数据库中创建的表一定要满足第一范式。
2NF(第二范式):
所有非主键字段,必须我完全依赖主键,不能只依赖主键的一部分。

从第一范式到第二范式的实现

3NF(第三范式):
在第2nf的基础上,每列都和主键直接相关而不是间接相关。
简单来说就是比如有一个订单表,其中肯定需要一些买家信息也需要一写卖家信息。对于卖家信息和卖家信息来说依赖的不是订单本身,而是依赖订单中卖家和买家。所以就不应该把买家资料和卖家资料放到订单表中。

什么是存储过程?

这个阿里巴巴开发手册上也明文规定了:【强制】禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。
但是我们还是要简单了解下:我们可以把存储过程看成是一些sql语句的集合。中间加了点逻辑控制语句。存储过程在业务比较复杂的时候是非常实用的。比如很多时候我们完成一个操作可能需要写一大串sql,这时候我们就可以写一个存储过程,这样也方便了我们下一次的调用。存储过程一旦调试完通过后就能稳定运行。另外,使用存储过程比单纯sql至于执行要快,因为存储过程是预编译过的。

drop,delete与trancate区别?

  • drop:直接将表删除掉。在删除表的时候使用
  • truncate:清空数据。truncate tableName.只清空表中数据,再插入的时候自增id从1开始。
  • delete:删除数据,delete from tableName where ~.删除指定条件的数据。

数据库设计通常分为哪几步?

  1. 需求分析:分析用户的需求,包括数据,功能和性能需求。
  2. 概念结构设计:主要采用E-R模型进行设计,包括ER图
  3. 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换。
  4. 物理结构设计:主要是为所设计的数据库选择合适的存储结构和存取路径。
  5. 数据库实施:包括编程,测试和试运行。
  6. 数据库的运行和维护:系统的运行和数据库的日常维护。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容