当前位置: 首页 > news >正文

数据库原理 知识点总结

名词积累:

数据库(Database):存放和提供数据的“库房”

数据(Data):数据库中存储的基本对象。

数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。

数据库系统(Database System):包含数据库、DBMS、应用系统、数据库管理员(DBA)

主键(Primary Key):用于唯一的标识表中的某一条记录的属性或属性的集合。

外键(Foreign Key):用于与还有一张表关联,外键为还有一张表的主键

超键(Super Key):超键是能唯一区分元组的属性或属性的集合

键(候选键):去掉了超键中多余的属性,仍然可以保证区分不同的元组。

模式(Schema):一个数据库的描写叙述,包含对数据库结构,数据类型,还有约束。

实例(Instance / State):数据库中在某一时刻存储的真实的数据。(Instance是Schema在某一时刻的详细化、实例化)

数据操纵语言(DML:Data Manipulation Language):增删改查

数据定义语言(DDL:Data Definition Language):定义、删除、改动数据库中的对象

数据控制语言(DCL:Data Control Language):用于控制用户对数据库操纵的权限

数据模型(Data Model):现实世界数据特征的抽象,用来定义数据如何组织,数据之间的关系如何

并相容性(Union Compatibility):两个关系具有并相容性须要保证具有同样的属性个数,以及对于每一个属性都有同样的域

视图(VIEW):视图是虚拟的表,并非物理存储的数据。而是由基本表或其它视图派生的数据。对视图的更新,实际上转换为对实际基表的更新。


数据模型(Data Model):

基本概念:现实世界数据特征的抽象,用来定义数据如何组织,数据之间的关系如何。

层次:

1.概念模型(Conceptual):按用户的观点来对数据和信息建模

2.逻辑/实现模型(Logical / Implementation):层次模型,网状模型,关系模型

3.物理模型(Physical):数据在详细DBMS产品中的物理储存方式


数据库系统的三级模式结构:





1.内模式(Internal Schema):(也称存储模式。)数据物理结构和储存方式的描写叙述,是数据在数据库内部的表示方式

2.概念模式(Conceptual Schema):(也称全局模式。)有时简称“模式”。是对数据库中全体数据的逻辑结构和特征的描写叙述

3.外模式(External Schemas):(也称子模式或者用户模式。)数据库用户可以看见和使用的局部数据的逻辑结构和特征的描写叙述


数据库系统的两级映射以及物理、逻辑独立性:

两级映射:

1.概念模式/内模式映射

2.外模式/概念模式映射


数据的物理独立性:

内模式与概念模式之间的映射提供了数据的物理独立性。当数据的物理结构发生变化时,仅仅须要改动内模式与概念模式之间的映射就可以。

数据的逻辑独立性:

概念模式与外模式之间的映射提供了数据的逻辑独立性。当数据的总体逻辑结构发生变化时,仅仅须要改动各个外模式与概念模式之间的映射就可以保证应用程序不受影响。


数据的约束条件:完整性约束

1. 域约束:对属性取值范围的约束

2. 键约束:每一个关系必需要有主键,且每一个主键必须不同样

3. 非空约束:属性值不能为NULL

4. 实体完整性约束:主键值不能为空

5. 參照完整性约束:外键能够取NULL值,但若外键为还有一关系主键,则不能为NULL。

6. 用户定义的完整性


各种数据操作可能违反的完整性约束

插入操作:域约束、键约束、非空约束、实体完整性约束、參照完整性约束

删除操作:參照完整性约束

更新操作:域约束、键约束、非空约束、实体完整性约束、參照完整性约束


SQL语句运行顺序:

1. FROM子句组装来自不同数据源的数据

2. WHERE子句基于指定的条件对记录进行筛选

3. GROUP BY子句将数据划分为多个分组

4. 使用聚集函数进行计算

5. 使用HAVING子句筛选分组

6. 计算全部的表达式

7. 使用ORDER BY对结果集进行排序


控制冗余(Controlled Redundancy)与非控制冗余(Uncontrolled Redundancy)的差别:

未受控制的数据存储冗余会导致例如以下的问题:

1. 更新数据时的反复工作

2. 浪费空间

3. 数据可能会不一致


因此,理想情况下,我们应该设计一个没有冗余的数据库,可是有时候我们须要提高查询的效率,因此我们引入了控制冗余(Controlled Redundancy)

比如:

我们将学生名和课程号冗余存储于GRADE_REPORT表中,由于查询成绩的时候我们须要同一时候查询学生姓名以及课程号。


关系(Relation)与文件(files)或表(tables)的不同:

关系看上去像一张二维表

关系的域(属性的取值范围)为一组原子值(不可再切割的值)

关系中的元组必须各不同样


关系代数:

五种基本运算:并、差、笛卡尔积、选择、投影

关系代数解释器:关系代数解释器(模拟关系代数)


内连接的种类:

1. 等值连接

2. 不等连接

3. 自然连接


SQL语句:

表结构的复制(不包括表之间的关系)

SELECT  *  INTO  COPY_DEPARTMENT  FROM DEPARTMENT  WHERE 1=0;


三值谓词逻辑:

1. TRUE

2. FALSE

3. UNKNOWN

仅仅有在比較结果为TRUE是才确定为真,e.g. (TRUE与UNKNOWN交为UNKNOWN, 此元组不会出如今结果中)


数据库应用系统设计的基本过程:

Phases of Database Design andImplementation Process(数据库设计的基本过程) 

Phase 1:Requirements Collections and Analysis(需求收集与分析)

Phase 2:Conceptual Database Design(概念结构设计)

Phase 3:Choice of a DBMS(选择合适的DBMS)

Phase 4:Data Model Mapping (Logical Database Design)(逻辑结构设计)

Phase 5:Physical Database Design(物理结构设计)

Phase 6:Database System Implementation(数据库实施)

Phase 7:Database System Operation and Maintenance(数据库执行和维护)


ER图符号解释:



将ER模型映射成逻辑模型的步骤:

1. 映射强实体型

2. 映射弱实体型

3. 映射1 : 1 二元联系型

4. 映射1 : N 二元联系型

5. 映射M : N二元联系型

6. 映射多值属性

7. 映射N元联系


数据库范式:

1NF(First Normal Form):当且仅当全部域仅仅包括原子值,即每一个分量都是不可再分的数据项,则称实体E满足第一范式

2NF(Second Normal Form):当且仅当实体E满足第一范式,且每个非键属性全然依赖主键时,满足第二范式

3NF(Third Normal Form):当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖时,满足第三范式

转载于:https://www.cnblogs.com/zfyouxi/p/4277495.html

相关文章:

  • Express初识
  • MyBatis Dynamic SQL 1.1.1 发布,生成动态 SQL 的框架
  • 21个值得收藏的Javascript技巧
  • 43. Multiply Strings字符串相乘
  • displayport-2
  • 他山之石——运维平台哪家强?
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • String Boot中@Controller和@RestController的区别?
  • 加入lib
  • form 表单中input 使用disable属性
  • Android 设置按钮为透明
  • 订餐小程序新获利使商家摆脱第三方平台束缚
  • AVR Option -H must not be defined more than once: -H1895 【已解决】
  • 日常问题小记(交接篇)
  • 如何简单的将pdf文件转换成html超文本标记语言
  • @jsonView过滤属性
  • AWS实战 - 利用IAM对S3做访问控制
  • mac修复ab及siege安装
  • nginx 配置多 域名 + 多 https
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PHP CLI应用的调试原理
  • python3 使用 asyncio 代替线程
  • react-native 安卓真机环境搭建
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 基于axios的vue插件,让http请求更简单
  • 记录:CentOS7.2配置LNMP环境记录
  • 记一次和乔布斯合作最难忘的经历
  • 跨域
  • 区块链分支循环
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 如何在GitHub上创建个人博客
  • 入门到放弃node系列之Hello Word篇
  • 我的业余项目总结
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • #define、const、typedef的差别
  • (27)4.8 习题课
  • (4)Elastix图像配准:3D图像
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (BFS)hdoj2377-Bus Pass
  • (C语言)共用体union的用法举例
  • (层次遍历)104. 二叉树的最大深度
  • (三)elasticsearch 源码之启动流程分析
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net core 6 集成和使用 mongodb
  • .NET Core 版本不支持的问题
  • .NET MVC第三章、三种传值方式
  • .NET 设计模式初探
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET运行机制
  • []FET-430SIM508 研究日志 11.3.31
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [AX]AX2012 R2 出差申请和支出报告
  • [C/C++]数据结构 循环队列