没有合适的资源?快使用搜索试试~ 我知道了~
首页SQL数据库基础入门:发展历程与关键概念
本文档深入介绍了SQL数据库的基础知识,首先从数据库的定义出发,强调其作为数据管理工具的重要性,减轻了开发人员的数据处理负担。数据库的核心概念是"万物皆关系",即使在面向对象编程中也有明显区分。文档讲述了数据库的发展历程,从早期的层次化和网状数据库到关系型数据库的兴起,如Oracle的里程碑式论文和拉里·埃里森推动的关系数据库商业化。Oracle的成功带动了全球范围内的数据库竞争,最终催生了SQL这一通用的数据库操作语言,统一了标准,使得关系型数据库成为主流。 接着,文档详细解释了数据库系统的构成,包括数据库本身(存储相关数据的集合)、数据库管理系统(DBMS,负责数据管理和操作的软件),以及数据库管理员(DBA,负责维护和管理整个系统)和用户应用程序(如Microsoft的SSMS)。这些组成部分协同工作,确保数据的有效管理和高效处理。 数据库系统的基本要求包括数据的独立性,即数据和程序的解耦,有助于快速开发和降低成本;减少冗余数据,提高数据共享性,以提高效率;以及系统的稳定性和安全性。学习SQL时,要注意不同数据库软件可能存在的差异,但核心语言SQL的学习是通用的,后续再根据具体产品学习特异性。 本文档提供了一个全面的框架,涵盖了SQL数据库从基础概念、发展历程、系统架构到基本要求的方方面面,对于初学者和数据库管理员来说是一份宝贵的参考资料。
资源详情
资源推荐
、 主外键联接 * 为忽略;
$、 语句连结 * 为 或真、* 和假。
具体可查三值逻辑的真值表。
&、特殊情况:
LM@C*K*,@C *K:表中 * 为 #" 的 行永远不会返回,即使 是 #",直接断
言;
LM2*@C**C*NNN:NNN 永远不会执行,即使 是 #",直接断言;
LM*I*@ 判断,0JL*I*@MDNNNF2D;;;F* 或 2@C*L"*I*@*MC*NNN2;;;*:这两种情况下,L*I*@ME即是 * 会执行。
L$M唯一约束(*0B0*-)的字段只允许一个 * 的行,再插入或更新该字段为 #" 的行会报字段重复的错误。
L&M138! 时,所有 * 被视为一组。
L'M8! 时,所有 * 排在一起,但 * 排在最前面(如 ),或者是最后面(如 ), 标准未规定。
LM聚集函数(2 O1O -O 0*O*)忽略 * 的行,即是不返回此行数据,直接断言
L>M 时,在未赋值之前为 *。
LM与 #" 处理相关的运算符和函数:
=02*O02**:用这两个运算符来判断一个值是否为 #",而不是K或LM;
=02*O 2:取第一个非空值(注意两个函数的数据类型转换规则不同);
=*0J9E8::等价于如果 等于 8 返回 *E如果不等于返回 8
=02*9E8::取两者中不为 * 的值,都为 * 返回 *。
16、Not Null 的建表
由于三值关系的存在,很多开发人员在建表的时候,除非是非 * 不可,基本都是允许为 * 的,其结果往往是一张表除了主键以外所有的字段都可以为 #。之所以会有这样的思路,
是因为 # 好啊,程序不容易出错啊,你插入记录的时候如果不小心忘输了一个字段,程序依然可以 6 运行 *,而不会出现 “NN 字段不能为 #A的错误消息。
但是,这样做的结果却是很严重的,也会使你的程序变得更加繁琐,你不得不进行一些无谓的空值处理,以避免程序出错。更糟的是,如果一些重要数据,比如说订单的某一项值为 #
了,那么大家知道,任何值与 # 相操作9比如加减乘除:,结果都是 #,导致的结果就是订单的总金额也为 #。
你可以运行下面的代码尝试一下:
Select Null + 5 As Result
但是我们如何解决输入为空的问题呢P我们为什么不使用我们强悍的工具—CI 约束与默认值呢P
Field Varchar(500) default ‘nothing’ Not Null Constraint ck_ColumnName Check(Len(ColumnName)>0),
[Type] TinyInt Not Null Default 0 Constraint ck_ArticleType Check([Type] in (0,1,2)),
所以,合理的思维方式应该是这样的:默认这个字段是 ## 的,然后判断这个字段是不是非 # 不可,如果不是这样,Q,这个字段是 ## 的,进行下一个字段。
17、数据库的原子性
、你的表是描述什么事物,明确表的信息对象主体
、你的表是为了适合什么操作语句的设计的,面向操作设计
、列的内容要不要原子性的切块,让查询直逼要害,列的设计的小块的程度要拿捏好
$、表必须是二维表,而且要根据不同的需求进行设计,表的设计与列的设计一样都要依赖与操作与需求
原子性的存在是为了切分适合的信息块 ,从而达到信息的最大化、最优化的使用,并不是无限切分就好,要看实际的应用。但是由于原子性数据的表容易设计,而且运行的所需时间
较短(查询信息的指向性比较强,同时也便于维护喝更新操作,但是却是在海量数据搜索面前有点乏力),所以对大量的数据处理的时候要加分效果。
、 同一列中不能存在多个类型相同的值,一列不能多值(除非是)
、 同一个表中也不能存在有多个存储相同类型数据的列
、 无重复的行,每列只存储一份同类型下的一份数据(列是单值的),无重复列名
$、
18、结合信息对象与业务设计数据库设计
、数据库的设计师根据信息要素、关系来设计的;
、数据库的信息查找依赖于信息的使用方式的;
、对于可有可无的东西,我们需要花点时间去好好斟酌;
$、简短的查询,比囧长的业务查询更加需要思考;
&、使用数据的方式将会与我们占用系统内存与硬盘息息相关,影响着服务器的整体表现,所以我们的设计会有所倚重与侧重;
现在基本是双数据库,外层是方便查询,内层是方便修改。
换一句话其实就是关系数据库管理系统 60*82*1 *!2 E6
表的设计的方法:
、挑出事物对象(对象信息浓缩法)
、围绕事物对象的信息收集(信息扩散聚拢法)
、信息拆分成块(字段原子性)
$、事务需求拆分法(关系设计)
&、数据的发散与聚合程度的分析9表设计的检验:
% %R %S T%
# #
# # #
# # # # #
# # #
# #
剩余17页未读,继续阅读
omyligaga
- 粉丝: 60
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 构建智慧路灯大数据平台:物联网与节能解决方案
- 智慧开发区建设:探索创新解决方案
- SQL查询实践:员工、商品与销售数据分析
- 2022智慧酒店解决方案:提升服务效率与体验
- 2022年智慧景区信息化整体解决方案:打造数字化旅游新时代
- 2022智慧景区建设:大数据驱动的5A级管理与服务升级
- 2022智慧教育综合方案:迈向2.0时代的创新路径与实施策略
- 2022智慧教育:构建区域教育云,赋能学习新时代
- 2022智慧教室解决方案:融合技术提升教学新时代
- 构建智慧机场:2022年全面信息化解决方案
- 2022智慧机场建设:大数据与物联网引领的生态转型与客户体验升级
- 智慧机场2022安防解决方案:打造高效指挥与全面监控系统
- 2022智慧化工园区一体化管理与运营解决方案
- 2022智慧河长管理系统:科技助力水环境治理
- 伪随机相位编码雷达仿真及FFT增益分析
- 2022智慧管廊建设:工业化与智能化解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功