
数据库系统
文章平均质量分 80
Jifu_M
这个作者很懒,什么都没留下…
展开
-
数据库系统之SQL SELECT语句-4
SQL - SELECT Statement -4Outer Join QueriesLEFT OUTER JOIN And RIGHT OUTER JOINFull outer join queries嵌套查询关联嵌套查询Relational views高级DML语句References接上篇文章SQL SELECT语句-1:https://blog.youkuaiyun.com/Jifu_M/article/details/112681846SQL SELECT语句-2:https://blog.csd原创 2021-01-16 14:54:51 · 454 阅读 · 0 评论 -
数据库系统之SQL SELECT语句-3
SQL - SELECT Statement -3Join QueriesNatural Join QueriesColumn Name Join QueriesCross Join Queries两个表以上的Join QueriesSelf-Join QueriesReferencesJoin QueriesJoin操作“连接”两个关系表中的行。找出Peter领导的部门提供的所有课程的名称:有以下4种联合查询的方法:SELECT titleFROM COURSE JOIN DEPARTMENT原创 2021-01-16 00:44:09 · 283 阅读 · 1 评论 -
数据库系统之SQL SELECT语句-2
SQL - SELECT Statement -2Set Algebra QueriesUNION OperationINTERSECT OperationMINUS OperationSorting缺失值查询Set Algebra Queries包含三种操作:UNION, INTERSECTION 和DIFFERENCE。用图可以更直接的表达三者的关系:A UNION B:在A或在B中的所有元素A INTERSECTION B: 同时在A和B中的所有元素A DIFFERENCE B: 所有原创 2021-01-16 00:03:01 · 310 阅读 · 0 评论 -
数据库系统之SQL SELECT语句-1
SQL - SELECT Statement -1Projection Queries使用行函数的查询 (Queries with row functions)使用组函数的查询 (Queries with group functions)特殊查询简单条件查询使用布尔表达式的查询ReferencesProjection QueriesProjection Queries从关系表中选择整个列,并且没有WHERE语句。找到所有部门的完整信息:SELECT code, name, total_staff_n原创 2021-01-15 18:11:55 · 423 阅读 · 0 评论 -
数据库系统之SQL 数据操作语言 (DML)
SQL - Data Manipulation LanguageDELETE StatementINSERT StatementUPDATE StatementReferencesDELETE StatementDELETE语句删除满足给定条件的所有行。通过DELETE语句删除的行可以通过ROLLBACK语句恢复,除非DELETE已经通过COMMIT语句提交。DELETE语句不删除表。DELETE语句不会释放被删除行的磁盘存储空间。举例说明:删除一个代码为123的课程:DELETE FROM原创 2021-01-15 17:42:15 · 277 阅读 · 0 评论 -
数据库系统之SQL 数据定义语言 (DDL)
SQL - Data Definition LanguageCREATE TABLE StatementDROP TABLE StatementALTER TABLE StatementReferencesCREATE TABLE StatementCREATE TABLE语句使用给定的名称、给定的属性名称和类型以及给定的逻辑一致性约束创建一个新的关系表.属性类型包括:VARCHAR(size) 可变长度字符串,最大大小65535字节。CHAR(size) 固定长度字符串,最大大小255字节。I原创 2021-01-15 00:06:56 · 352 阅读 · 0 评论 -
数据库系统之SQL简介
Introduction to SQL简介特性简介SQL全称结构化查询语言(Structured Query Language)。最初称为SEQUEL (Structured English QUEry Language)。SQL是一种面向命令的、声明式的、通用于所有关系数据库管理系统的数据库编程语言。特性...原创 2021-01-14 23:35:52 · 623 阅读 · 0 评论 -
MongoDB项目练习之基于概念框图的validation设计
MongoDB validation项目介绍项目开始关于MongoDB validation的介绍可以看一下我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112595879项目介绍考虑以下数据库的概念框图,该数据库应该包含有关公司、部门和部门内工作的员工的信息。该任务的目标是创建一个新的集合JFM,其中包含由上面的概念模式表示的信息。使用createCollection方法创建一个集合JFM,并使用validator键对集合强制执行以下原创 2021-01-14 18:53:16 · 263 阅读 · 0 评论 -
MongoDB中的索引项目练习
MongoDB indexing项目介绍项目开始项目介绍我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求进行操作。练习用的bookshop.js已被上传到我的资源。https://download.youkuaiyun.com/download/Jifu_M/14159088关于MongoDB索引的介绍可以看一下我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112578054为下面4个查询语句创建索引:(1) 查找具原创 2021-01-14 18:03:51 · 327 阅读 · 0 评论 -
MongoDB中的aggregate项目练习
MongoDB aggregate项目介绍项目开始项目介绍我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求数据操作工作。练习用的bookshop.js已被上传到我的资源。https://download.youkuaiyun.com/download/Jifu_M/14159088.关于MongoDB聚合的介绍可以看一下我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112570952使用aggregate()来实现下面原创 2021-01-14 17:21:32 · 321 阅读 · 0 评论 -
MongoDB中的迭代cursor项目练习
MongoDB Iterations over a cursor项目介绍项目开始项目介绍我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求数据操作工作。练习用的bookshop.js已被上传到我的资源。https://download.youkuaiyun.com/download/Jifu_M/14159088.下面列出的查询必须通过cursor上的迭代来实现:(a) 在书店数据库中列出图书(书籍、杂志、音乐cd和杂志)的类型和每种类型的图书总数。(b) 列出每本书的标题和关原创 2021-01-14 17:08:38 · 278 阅读 · 0 评论 -
MongoDB中的数据操作项目练习
Data manipulations in MongoDB项目介绍项目开始项目介绍我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求数据操作工作。练习用的bookshop.js已被上传到我的资源。项目开始首先要创建一个文件夹来进行项目,之后启动MongoDB,最后读取文件:mkdir DATAmongod –dbpath DATA –port 4000mongo –port 4000load("bookshop.js");(1) 在 bookshop中原创 2021-01-14 16:40:31 · 400 阅读 · 0 评论 -
数据库系统之MongoDB Sharding
MongoDB Sharding基础知识为什么要Sharding?分配Sharding模拟ProductionReferences基础知识Sharding是将一个大型数据集划分为更小、更易于管理的片段的过程。Shared nothing架构是一种分布式计算架构,其中每个计算节点不与其他节点共享数据。在数据库系统中,它被称为sharding(shared nothing)。在出现以下三种情况时我们要考虑使用Sharding:大量的数据和更大的读/写吞吐量需求使得商品数据库服务器不够。数据原创 2021-01-14 16:21:11 · 494 阅读 · 0 评论 -
数据库系统之MongoDB复制
MongoDB Replication基础知识为什么我们要复制?复制模拟References基础知识复制意味着自动维护分布在多个MongoDB服务器上的数据。复制是作为一种称为副本集(replica sets)的机制实现的。副本集是一组节点,这些节点被配置为可以在节点消失时自动同步其数据并进行故障切换。旧版本的MongoDB支持一种称为master-slave的复制方法(现在被认为已弃用),该方法仍然可以在mongodbv3.0中使用。在这两种方法中,单个主节点接收所有写操作,然后所有次节点异步原创 2021-01-13 23:26:45 · 709 阅读 · 0 评论 -
数据库系统之MongoDB Validations
MongoDB Validations概述类型约束存在约束域约束JSON模式验证validations管理References概述JSON/BSON数据模型的半结构化和无模式属性允许对数据库结构进行非常灵活的操作。与此同时,数据库结构的灵活和不受控制的操作也很容易造成数据库结构和数据库内容的破坏,例如,由于随机错误。MongoDB提供了在更新和插入(不是删除)期间验证文档(validate documents)的能力。验证规则具体来说就是使用createCollection() 方法的valida原创 2021-01-13 22:48:11 · 1010 阅读 · 0 评论 -
数据库系统之MongoDB索引
MongoDB Indexing索引的概述单键索引 (Single key index)复合键索引稀疏索引 (Sparse index)多键索引哈希索引 (Hashed index)Geospacial index索引管理References索引的概述索引可以显著的减少访问文件所需的时间。如果没有索引,必须访问集合中的所有文档。单键索引最适合{“key”:“value”}查询条件。对于多个键的查询条件,例如{$and:[{“key1”:“value1”},{“key2”:“value2”}]}复合原创 2021-01-13 19:19:11 · 163 阅读 · 0 评论 -
数据库系统之MongoDB聚合
MongoDB Aggregations聚合框架$project$match$limit$skip$unwind$group$sort$out$countReferences聚合框架聚合框架是一种查询语言,可用于转换和组合来自多个文档的数据,以生成任何单个文档中都无法获得的新信息。MongoDB中的聚合框架类似于SQL 中的GROUP BY和HAVING。聚合框架过在一个数组中指定一系列操作并在一个调用中处理它,使得任务数据库搜索更加容易和高效。聚合框架定义了一个聚合管道,其中管道中每个步骤的输出原创 2021-01-13 16:43:37 · 222 阅读 · 0 评论 -
数据库系统之MongoDB数据操作
MongoDB Data Manipluations文档插入文档删除更新文档References文档插入insert()语句可用于将单个文档插入到集合中:db.department.insert({ "name":"School of Computing and Information Technology","code":"SCIT","total_staff_number":30,"budget":1000000,"address":{"street":"Er xian qiao str原创 2021-01-13 16:01:49 · 226 阅读 · 0 评论 -
MongoDB查询语言项目练习
MongoDB查询语言项目练习项目介绍项目开始关于MongoDB查询语言的介绍可以看我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112549035项目介绍我们拥有一个bookshop.js的文件,将文件导入的MongoDB后按照要求进行查询工作。项目开始首先要创建一个文件夹来进行项目,之后启动MongoDB,最后读取文件:mkdir DATAmongod –dbpath DATA –port 4000mongo –port 4原创 2021-01-12 22:59:08 · 311 阅读 · 0 评论 -
数据库系统之MongoDB查询语言
MongoDB query language对嵌套文档的查询数组的查询操作符Projections查询空值和丢失的键使用 cursor进行迭代References简单的find语句已经在我的上篇文章介绍过了:https://blog.youkuaiyun.com/Jifu_M/article/details/112543664这篇文章介绍相对复杂一些的find语句。对嵌套文档的查询db.department.find({"courses":[{"code":"001","title":"ABC", "cred原创 2021-01-12 22:38:02 · 803 阅读 · 0 评论 -
数据库系统之MongoDB数据库,集合与文档
MongoDB Databases, Collections,DocumentsMongoDB基础知识服务器数据库集合 (Collections)文档(Documents)格式化(Formatting)DDLDML查询语句ReferencesMongoDB基础知识MongoDB是一种数据库系统,属于一类所谓的NoSQL数据库系统,它基于不同于关系模型的数据模型以及不同于SQL的数据定义、操作、检索和管理语言。MongoDB数据模型(BSON)是基于key:value对的概念,将key:value对分组原创 2021-01-12 19:18:47 · 1087 阅读 · 0 评论 -
数据库系统之JSON和BSON
NoSQL Database SystemsJSONBSONReferencesJSONJava Script Object Notation (JSON)是一种轻量级的数据交换格式。它是基于JavaScript编程的一个子集。JSON(ECMA-262 3rd)是建立在两个结构上的:name:value 对的集合- 对象值的有序列表 -数组举一些name:value 对的例子:"firstname": "James"}{"city": "Sydney", "street":"Vic原创 2021-01-12 17:52:27 · 542 阅读 · 0 评论 -
数据库系统之NoSQL数据库系统
NoSQL Database Systems什么是NoSQL数据库系统?为什么使用NoSQL?NoSQL数据库系统的属性半结构化的、无模式的数据模型专业分布模型弱一致性Relaxing durabilityVersioningReferences什么是NoSQL数据库系统?NoSQL数据库系统是在21世纪初开发出来的,以应对日益增长的互联网使用和移动地理定位技术产生的大量数据处理需求.传统的解决方案要么太昂贵、不容易扩充,要么需要太多时间来处理数据。现代NoSQL数据库系统“借用”了早期系统的一些解原创 2021-01-12 16:39:04 · 1170 阅读 · 0 评论 -
数据库系统之Oracle DBMS中的事务处理
Transaction Processing in Oracle DBMS事务范围(Transaction Scope)隔离级别和读取一致性级别Rollback/undo segmentsREAD COMMITTED和 SERIALIZABLE的级别READ COMMITTED隔离级别SERIALIZABLE 隔离级别LockingReferences事务范围(Transaction Scope)事务在 connection, COMMIT或者ROLLBACK 语句之后第一个可执行的SQL语句开始。事原创 2021-01-12 15:58:43 · 458 阅读 · 0 评论 -
数据库系统之幻影读现象项目练习
Phantom phenomenon项目练习项目介绍项目实现关于幻影读现象的介绍可以看我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112493516项目介绍在PL/SQL中实现两个处理数据库的stored procedures并通过这两个stored procedures触发一个幻影现象。要模拟数据库事务的并发处理,请使用标准PL/SQL包DBMS_LOCK中的PL/SQL procedure SLEEP。使用SQL*Plus的命令来展原创 2021-01-11 21:24:43 · 757 阅读 · 0 评论 -
数据库系统之ANSI SQL中的事务处理
Transaction Processing in ANSI SQL脏读现象(Dirty read phenomenon)不可重复读现象(Non-repeatable read phenomenon)幻影读现象(Phantom phenomenon)隔离级别(Isolation levels)隔离级别的设置References脏读现象(Dirty read phenomenon)A transaction reads uncommitted data created by a transaction t原创 2021-01-11 21:13:37 · 302 阅读 · 0 评论 -
数据库系统之Deadlock项目练习
Deadlock项目练习项目介绍项目实现关于Deadlock死锁的介绍可以看我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112486019项目介绍使用PL/SQL在sample数据库上进行事务操作,让它们并发处理导致死锁情况发生。要模拟数据库事务的并发处理,请使用标准PL/SQL包DBMS_LOCK中的PL/SQL procedure SLEEP。使用SQL*Plus的命令来展示运行结果SET ECHO ONSET FEEDBACK原创 2021-01-11 20:34:20 · 178 阅读 · 0 评论 -
数据库系统之事务处理-3
Transaction Processing串行图串行图测试协议(SGT)两段锁协议(2PL)死锁 Deadlocks时间戳排序协议(Timestamp ordering(TO) protocol)References接上文数据库系统之事务处理-2https://blog.youkuaiyun.com/Jifu_M/article/details/112479869串行图制作串行图规则如下:如果事务T参与并发执行,那么我们向序列化图中添加一个标记为T的节点。如果事务Ti和Tj处理冲突的操作,使得Ti首先处原创 2021-01-11 20:16:41 · 499 阅读 · 1 评论 -
数据库系统之事务处理-2
Transaction Processing正确性 (Correctness)保序可串行化(Order preserving serializability)可恢复执行(Recoverable executions)Cascadeless executions严格执行 (Strict executions)各个执行之间的关系References接上文数据库系统之事务处理-1https://blog.youkuaiyun.com/Jifu_M/article/details/112477560正确性 (Corre原创 2021-01-11 19:00:36 · 1224 阅读 · 0 评论 -
数据库系统之事务处理-1
Transaction Processing一个有趣的实验一个有趣的实验假设有两个用户同时对一个数据库进行操作,我们把第一个用户的事物处理操作叫做Transaction 1(T1)第二个用户叫Transaction 2(T2)。原创 2021-01-11 17:33:56 · 972 阅读 · 0 评论 -
数据库系统之Row trigger项目练习
Row trigger项目练习项目介绍项目实现关于Trigger触发器的介绍可以看我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112452854项目介绍实现并测试验证以下一致性约束的行触发器:“An employee cannot work on more than 4 projects”准备好后,保存CREATE TRIGGER语句和在脚本中全面测试触发器的所有SQL语句。全面的测试意味着触发器必须拒绝违反一致性约束的SQL语句,并原创 2021-01-11 00:26:21 · 180 阅读 · 0 评论 -
数据库系统之数据库触发器
Database trigger什么是Database trigger?主动数据库系统CREATE OR REPLACE TRIGGER 声明Statement database triggerRow database triggersReferences什么是Database trigger?数据库触发器是存储在数据字典中的一段代码,每当发生预定义的事件并满足预定义的条件时,它都会自动处理。打个比方,我们想为所有工资超过100000的员工自动提高工作级别:ON UPDATE OF EMPLOYEE原创 2021-01-11 00:12:41 · 816 阅读 · 0 评论 -
数据库系统之Stored PL/SQL procedure项目练习-1
Stored PL/SQL项目练习-1项目介绍项目实现关与Stored PL/SQL的介绍可以看我的这篇文章:https://blog.youkuaiyun.com/Jifu_M/article/details/112443652项目介绍实现一个存储的PL/SQL过程deptememployees来列出部门、每个部门的经理、每个部门的员工总数以及每个部门的员工编号和姓名。部门信息按部门号从小到大的顺序排列。每个部门的员工必须按姓名升序列出。执行存储的PL/SQL过程DEPTEMPLOYEES。下面给出了预期原创 2021-01-10 23:35:51 · 399 阅读 · 0 评论 -
数据库系统之Stored PL/SQL
Stored PL/SQL什么是Stored PL/SQL ?应用CREATE OR REPLACE PROCEDURE 声明CREATE OR REPLACE FUNCTION 声明GRANT 声明References什么是Stored PL/SQL ?存储的PL/SQL是指预编译的PL/SQL过程和PL/SQL函数,并存储在数据字典中以备处理。处理关系表的多个应用程序可以多次引用或调用存储过程和函数。存储过程和函数在处理(调用)时可以接受参数。可以使用EXECUTE语句处理(调用)存储过程。原创 2021-01-10 21:34:31 · 349 阅读 · 0 评论 -
数据库系统之PL/SQL-2
PL/SQL数据类型隐式类型声明操作符条件控制语句迭代控制语句CursorsCursor的显式声明和处理Cursor的隐式声明和处理Cursor 属性Exceptions 异常References接上篇:https://blog.youkuaiyun.com/Jifu_M/article/details/112427863数据类型PL/SQL中有一些已被定义的数据类型:NTEGER, DECIMAL, NUMBER, CHAR, DATE, VARCHAR, VARCHAR2, LONG,BOOLEAN, R原创 2021-01-10 16:29:56 · 373 阅读 · 3 评论 -
数据库系统之PL/SQL-1
PL/SQL什么是PL/SQL ?程序结构声明式组件 (Declarative components)执行组件 (Executable components)异常组件 (Exception components)Anonymous block的结构Procedure结构Function的结构References什么是PL/SQL ?PL/SQL是SQL的过程扩展。PL/SQL = procedural Programming Language + SQL。我们需要PL/SQL来填补高级声明性查询语言原创 2021-01-10 15:19:40 · 589 阅读 · 0 评论 -
数据库系统之索引(index)
Introduction to Indexing什么是索引主索引 (Primary/unique index)二级索引/非唯一索引 (Secondary/nonunique index)聚合索引 (Clustered index)B* 树索引 (B*-tree index)B*树索引的遍历利用索引来加速查询References什么是索引索引是一种数据结构,它组织磁盘上的数据记录以优化某些类型的检索操作。索引用于有效地检索索引的搜索关键字字段上满足搜索条件的所有记录。主索引 (Primary/uniq原创 2021-01-10 00:05:25 · 1211 阅读 · 0 评论 -
数据库系统之数据库函数依赖与最高范式判断练习
数据库函数依赖与最高范式判断练习(1)PLAYER = ( pnum, team, name, position, address )pnum → teampnum → namepnum → positionpnum → addressteam → addresspnum → team, pnum → name, pnum → position and pnum → address, then through union rulepnum →team, name, position, ad原创 2021-01-09 15:23:46 · 1436 阅读 · 1 评论 -
数据库系统之数据库规范化
Database normalizationSuperkey,Minimal key,Primary key和Candidate key函数依赖项和键属性完全和部分函数依赖关系第一范式 (1NF)0NF第二范式 (2NF)第三范式 (3NF)Boyce-Codd Normal Form (BCNF)ReferencesSuperkey,Minimal key,Primary key和Candidate keyA superkey is a nonempty subset X of relational原创 2021-01-09 15:06:36 · 774 阅读 · 0 评论 -
数据库系统之函数依赖
Functional Dependencies什么是函数依赖?如何发现关系表中的函数依赖关系?函数依赖关系与对象的类功能依赖与关联函数依赖性的派生阿姆斯特朗公理 (Armstrong axioms)其他的推理规则References什么是函数依赖?举些例子:员工所属部门:员工编号→部门名称一个部门有一个经理:部门名称→经理编号员工只有一个经理:员工编号→经理编号学生一次注册一个科目:学号、科目代码→注册日期一个员工在一个办公室的一栋楼里:员工号→楼号,办公室号大楼里的办公室有一间员工:楼号,原创 2021-01-09 13:51:45 · 2113 阅读 · 1 评论