数据库中的基本概念

技术交流QQ群:1027579432,欢迎你的加入!

欢迎关注我的微信公众号:CurryCoder的程序人生

1.基本概念

  • 数据(data):描述事物的符号记录称为数据
  • 数据库(DataBase,DB):是长期存储在计算机内、有组织的、可共享的大量数据的集合,具有永久存储、有组织、可共享三个基本特点。
  • 数据库管理系统(DataBase Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。
  • 数据库系统(DataBase System,DBS):是有数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator DBA)组成的存储、管理、处理和维护数据的系统。
  • 实体(entity):客观存在并可相互区别的事物称为实体。
  • 属性(attribute):实体所具有的某一特性称为属性。
  • 码(key):唯一标识实体的属性集称为码。
  • 实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
  • 实体集(entity set):同一实体型的集合称为实体集。
  • 联系(relationship):实体之间的联系通常是指不同实体集之间的联系。
  • 模式(schema):模式也称逻辑模式,是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
  • 外模式(external schema):外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
  • 内模式(internal schema):内模式也称为存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据库在数据库内部的组织方式

2.常用数据模型

  • 层次模型(hierarchical model)
  • 网状模型(network model)
  • 关系模型(relational model)
    • 关系(relation):一个关系对应通常说的一张表
    • 元组(tuple):表中的一行即为一个元组
    • 属性(attribute):表中的一列即为一个属性
    • 码(key):表中可以唯一确定一个元组的某个属性组
    • 域(domain):一组具有相同数据类型的值的集合
    • 分量:元组中的一个属性值
    • 关系模式:对关系的描述,一般表示为 关系名(属性1, 属性2, ..., 属性n)
  • 面向对象数据模型(object oriented data model)
  • 对象关系数据模型(object relational data model)
  • 半结构化数据模型(semistructure data model)

3.常用SQL操作

常用SQL操作

4.关系型数据库

  • 基本关系操作:查询(选择、投影、连接(等值连接、自然连接、外连接(左外连接、右外连接))、除、并、差、交、笛卡尔积等)、插入、删除、修改
  • 关系模型中的三类完整性约束:实体完整性、参照完整性、用户定义的完整性

5.索引

6.数据库完整性

  • 数据库的完整性是指数据的正确性和相容性。
    • 完整性:为了防止数据库中存在不符合语义(不正确)的数据。
    • 安全性:为了保护数据库防止恶意破坏和非法存取。
  • 触发器:是用户定义在关系表中的一类由事件驱动的特殊过程。

7.关系数据理论

  • 数据依赖是一个关系内部属性与属性之间的一种约束关系,是通过属性间值的相等与否体现出来的数据间相关联系。
  • 最重要的数据依赖:函数依赖、多值依赖。

8.范式

  • 第一范式(1NF):属性(字段)是最小单位不可再分。强调的是列的原子性,即列不能够再分成其他几列。
  • 第二范式(2NF):满足 1NF,每个非主属性完全依赖于主键(消除 1NF 非主属性对码的部分函数依赖)。首先是1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
  • 第三范式(3NF):满足 2NF,任何非主属性不依赖于其他非主属性(消除 2NF 主属性对码的传递函数依赖)。首先是2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
  • 鲍依斯-科得范式(BCNF):满足 3NF,任何非主属性不能对主键子集依赖(消除 3NF 主属性对码的部分和传递函数依赖)。
  • 第四范式(4NF):满足 3NF,属性之间不能有非平凡且非函数依赖的多值依赖(消除 3NF 非平凡且非函数依赖的多值依赖)。

9.数据库恢复

  • 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
  • 事物的 ACID 特性:原子性、一致性、隔离性、持续性。
  • 恢复的实现技术:建立冗余数据 -> 利用冗余数据实施数据库恢复。
  • 建立冗余数据常用技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记日志文件。

10.并发控制

  • 事务是并发控制的基本单位
  • 并发操作带来的数据不一致性包括:丢失修改、不可重复读、读 “脏” 数据。
  • 并发控制主要技术:封锁、时间戳、乐观控制法、多版本并发控制等。
  • 基本封锁类型:排他锁(X 锁 / 写锁)、共享锁(S 锁 / 读锁)。
  • 活锁和死锁:
    • 活锁:事务永远处于等待状态,可通过先来先服务的策略避免。
    • 死锁:事物永远不能结束
      • 预防:一次封锁法、顺序封锁法;
      • 诊断:超时法、等待图法;
      • 解除:撤销处理死锁代价最小的事务,并释放此事务的所有的锁,使其他事务得以继续运行下去。
  • 可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行性时并发事务正确调度的准则。

11.一个完整的数据库设计一般分为以下六个阶段

  • ⑴需求分析:分析用户的需求,包括数据、功能和性能需求;
  • ⑵概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
  • ⑶逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型 的转换; 进行关系规范化。
  • ⑷数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
  • ⑸数据库的实施:包括编程、测试和试运行;
  • ⑹数据库运行与维护:系统的运行与数据库的日常维护。

12.一个事务执行过程中,其正在访问的数据被其他事务所修改,导致处理结果不正确,这是由于违背了事务的隔离性而引起的!!!

13.having和group by子句的问题

  • SQL查询语句中where、group by、having 这些关键字区别和用法总结错误的是:


    问题.png
  • A:1.having只能用在group by之后,对分组后的结果进行筛选,筛选行(即用having的前提条件是分组);2.where肯定在group by 之前;3.where后的条件表达式里不允许使用聚合函数,而having可以。

14.在视图上使用INSERT语句添加数据时,要遵循的规则:

  • 1.使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利。
  • 2.由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一:
    • 该字段允许空值。
    • 该字段设有默认值。
    • 该字段是标识字段,可根据标识种子和标识增量自动填充数据。
    • 该字段的数据类型为timestamp或uniqueidentifier。
  • 3.视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。
  • 4.视图中不能包含DISTINCT或GROUP BY子句。
  • 5.如果视图中使用了WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不符合该条件,SQL Server会拒绝插入数据。
  • 6.不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个INSERT语句进行添加。

15.CASCADE与RESTRICT的区别

  • CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。
  • RESTRICT表示表的删除是有条件限制的,要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则表不能被删除

16.实体完整性、参照完整性和用户定义完整性

  • 实体完整性:这条规定的现实意义是,关系模型对应的是现实世界的数据实体,而关键字是实体唯一性的表现,没有关键字就没有实体,所有关键字不能是空值。这是实体存在的最基本的前提,所以称之为实体完整性。
  • 参照完整性:参照完整性规则也可称为引用完整性规则。这条规则是对关系外部关键字的规定,要求外部关键字的取值必须是客观存在的,即不允许在一个关系中引用另一个关系不存在的元组。
  • 用户定义完整性:由用户根据实际情况,对数据库中数据的内容所作的规定称为用户定义的完整性规则。通过这些限制数据库中接受符合完整性约束条件的数据值,不接受违反约束条件的数据,从而保证数据库的数据合理可靠。

17.InnoDB和MylSAM

  • InnoDB执行DELETE FROM table 命令时,不会重新建表
  • MylSAM的索引和数据是分开保存的

18.数据库中的DDL DML DCL DQL

  • DDL:数据库模式定义语言,关键字:create, alter, drop
  • DML:数据操作语言,关键字:Insert、delete、update 、select
  • DCL:数据库控制语言 ,关键字:grant、remove
  • DQL:数据库查询语言,关键字:select

参考博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350