`
- 浏览:
367043 次
- 性别:
- 来自:
福州
-
很长时间没写错误总结及心得了。昨天思考了一番,觉得自己和数据库还是蛮有渊缘的,从做网站到Android上电话簿的开发,一直都没有离开过数据库的使用,虽然数据库这块我充其量是熟悉,但一个人的潜能是可以无限挖掘的,所以我决定以后主要突击嵌入式系统上的数据库应用。
今天温习了数据库中几个比较重要的概念:范式,存储过程,索引,触发器。在学校的时候只是对这几个概念了解了一些皮毛,并没有深入的去学习,以为没什么用武之地,实则是自己肤浅的很帅。
1: 范式
第一范式:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。简而言之,第一范式就是无重复的列。
第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。简而言之,第二范式就是非主属性非部分依赖于主关键字。
第三范式:要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。不存在传递依赖关系。
2: 存储过程:
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
3: 索引(注:以SQL Server为例)
正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。
事实上,我们可以通过前面聚集索引和非聚集索引的定义的例子来理解。如:返回某范围内的数据一项。比如您的某个表有一个时间列,恰好您把聚合索引建立在了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到具体内容。
4: 触发器
触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。
一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:
虚拟表Inserted 虚拟表Deleted
在表记录新增时 存放新增的记录 不存储记录
修改时 存放用来更新的新记录 存放更新前的记录
删除时 不存储记录 存放被删除的记录
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
#### 十一、触发器与存储过程 - **触发器**:当特定事件发生时自动执行的PL/SQL代码块,常用于实现业务逻辑或数据完整性控制。 - **存储过程**:一组预编译的SQL和PL/SQL语句集合,可以接受参数、执行复杂操作并返回...
本文总结了Java面试中关于数据库基础知识的重要概念和问题,涵盖了数据库基础知识、SQL语句、索引、事务、锁、视图、存储过程、触发器、常用SQL语句、SQL优化等方面。 数据库基础知识: * 数据库的三大范式:第一...
* 数据库查询的优化:索引、views、存储过程等 * 数据库查询的安全性:权限控制、数据加密等 四、视图 * 视图的概念:虚拟表、数据的逻辑表示 * 视图的类型:简单视图、复杂视图、物化视图等 * 视图的应用:数据...
5. **触发器**:触发器是数据库中的一种特殊类型的存储过程,会在特定数据库事件(如插入、更新或删除)发生时自动执行。在超市管理场景中,触发器可能用于在商品库存低于安全水平时发送警告,或者在商品价格调整后...
8. 触发器和存储过程:虽然可以简化代码,但过度使用可能降低性能。谨慎使用,确保它们不会成为性能瓶颈。 9. 定期维护:包括重建索引、清理无用的临时表、更新统计信息等,以保持数据库健康。 10. 监控和调优工具...
5. 存储过程和触发器设计:编写存储过程和触发器,增强数据库的功能,如自动化处理、事务控制等。 设计工作任务及工作量要求包括: 1. 需求分析报告:明确系统功能和设计重点。 2. 模块划分:根据功能需求,将系统...
这本书对于SQL语言的基础知识、数据库设计、数据查询、表的操作、索引、存储过程、触发器以及数据库安全等方面都有详尽的讲解,旨在帮助读者掌握MySQL的核心技术。 SQL(Structured Query Language)是用于管理和...
这个文件很可能是包含上述船期管理数据库中的一部分或全部SQL脚本,可能包含了存储过程、触发器、函数或者其他的SQL语句。这些脚本可能用于实现特定的业务逻辑,比如添加新的船期、更新状态、计算船只的预计到达时间...
在"一头扎进Mysql视频教程源码.rar"这个资源中,我们很可能会深入学习到关于MySQL的基础知识,包括但不限于数据库概念、SQL语句、表的创建与管理、索引、事务处理、存储过程以及触发器等。 首先,让我们从基础开始...
实验涵盖了多个关键领域,包括数据库设计、数据表设计、视图设计、索引设计、数据完整性、存储过程和触发器、备份与恢复以及数据库安全。 1. **数据库设计**: - 实验要求设计合理的数据库,并对设计进行说明。...
关键知识点包括T-SQL语法(SELECT、INSERT、UPDATE、DELETE)、数据库设计(ER模型、范式)、索引、存储过程、触发器、事务处理、备份与恢复策略等。 4. **MySQL**:MySQL是一款开源的关系型数据库管理系统,广泛...
在SQL Server数据库设计和高级查询领域,我们涵盖了多个关键知识点,这些内容...通过深入学习这4-7章节,开发者将具备处理复杂查询、优化数据库性能以及编写存储过程和触发器的能力,从而在实际工作中更加得心应手。
在实际应用中,我们可以使用 Mysql 的各种特性来实现不同的范式,例如使用主键和索引来实现一级范式,使用外键和触发器来实现二级范式,使用视图和存储过程来实现三级范式等。同时,我们也可以使用其他数据库管理...
4. **存储过程和触发器**:重构可能涉及对存储过程和触发器的修改,以提高代码复用和效率,同时减少网络传输。然而,过度依赖存储过程和触发器也可能带来维护困难,因此需要权衡利弊。 5. **分区和分片**:对于大...
在SQL Server的高级开发中,我们探讨的主题涵盖了数据库设计、性能优化、事务处理、存储过程、触发器、索引策略、备份与恢复等多个关键领域。这些主题对于任何想要深入理解和应用SQL Server的专业人士来说都是至关...
4. 存储过程和触发器:能够编写存储过程,了解它们在性能上的优势,知道何时使用触发器,以及如何防止触发器滥用。 存储过程和触发器是 MySQL 中的两种重要的数据库对象。candidates 需要能够编写存储过程,了解...
数据库面试题是数据库管理员、JAVA程序员、架构师等必须掌握的知识点,涵盖了数据库基础、SQL语言、视图、完整性约束、第三范式、ER模型、索引、事务、锁、死锁、存储过程、触发器等方面。 1. 数据库基础: 数据库...
在数据库设计中,建表原则、索引策略和触发器的使用是至关重要的,它们直接影响到数据存储的效率、查询速度以及数据的完整性和一致性。本文将深入探讨这些关键概念,帮助你理解如何构建高效、稳定的数据库系统。 一...
本资料包主要涵盖了数据库技术的基础知识,包括数据库的介绍、设计原则、基本操作、索引、视图、存储过程和触发器,以及它们在实际应用中的实例。 首先,我们从基础开始,数据库是一个有组织地存储数据的系统,用于...