SQL应用与开发:(一)导论和环境-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

SQL应用与开发:(一)导论和环境

简介:

一.导论

关系数据库是采用关系模型作为数据的组织方式的数据库,其以简单清晰的概念,易学易懂的数据库语言,使用户不需了解复杂的存取路径细节,不需说明“怎么干”,只需指出“干什么”就能操作数据库,而受到广大用户的喜爱。

SQL(结构化查询语言)是一种主要的关系型数据库语言,它建立在关系型数据模型基础上。

数据库系统,狭义地讲是由数据库、数据库管理系统和用户组成的;广义上讲是由计算机硬件、操作系统、数据库管理系统,以及在它支持下建立起来的数据库、应用程序、用户和数据库管理员组成的一个整体。




对于SQL的学习,是以《SQL应用与开发》为主的,在学习过程中,将自己的理解,整理成下面这幅图,以希望有所交流:




数据库设计过程

在使用普通文件的计算机应用系统中,数据库是从属程序的,数据文件的设计通常是应用程序设计的一部分。在数据库系统应用中,数据由DBMS进行独立地管理,对程序的依赖性大为减少。而数据库的设计也逐渐形成一项独立的开发活动。

一般来说,数据库的设计都要经历需求分析、概念设计、实现设计和物理设计四个阶段,下面这幅图为各设计过程和每一过程应生成的文档。




1.需求分析:是整个设计过程的基础,是最困难、最耗费时间的一步。它的目的是分析系统的需求。该过程的主要任务是从数据库的所有用户那里收集对数据的需求和对数据处理的要求,并把这些需求写成用户和设计人员都能接受的说明书。

2.概念设计:是整个数据库设计的关键。它的目的是将需求说明书中关于数据的需求,综合为一个统一的DBMS概念模型。首先根据单个应用的要求,画出能反映每一应用需求的局部R-R模型。然后将这些E-R模型图合并起来,消除冗余和可能存在的矛盾,得出系统总体的E-R模型。

3.实现设计:它的目的是将E-R模型转换为某一特定的DBMS能够接受的逻辑模式。对关系数据库,主要是完成表的关联和结构的设计。

4.物理设计:它的目的在于确定数据库的存储结构。其主要任务包括:确定数据库文件和索引文件的记录格式和物理结构,选择存取方法,决定访问路径和外存储器的分配策略等。不过大多这些工作大部分可由DBMS来完成,仅有一小部分工作是由设计人员完成。例如,物理设计应确定列类型和数据库文件的长度。实际上,由于借助DBMS,这部分工作难度你实现设计要容易得多。


关系数据库规范

在实现设计阶段,常常使用关系数据规范理论来指导关系数据库设计。其基本思想为,每个关系都应该满足一定的规范,从而使关系模式设计合理,达到减少冗余,提高查询效率的目的。

为了建立冗余较小、结构合理的数据库,将数据库中关系应满足的规范划分为若干等级,每一级成为一个“范式”。下面将一个人的理解用一句话为大家介绍最为常用的三个范式:

1.第一范式(1NF):无重复列。(在任何一个关系数据库中,第一范式是对关系模型的基本要求,不满足第一范式的数据库就不是关系数据库。)

2.第二范式(2NF):非主属性非部分以来于主关键字。(首先满足第一范式,再者数据库表中的每个实例或行必须可以被唯一地区分,为了实现区分,通常为表加上一个列,以存储各个实例的唯一标识;实体的属性完全依赖于主关键字,所谓“完全依赖”是指不能存在仅依赖主关键字的一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体和原实体之间是一对多的关系。)

3.第三范式(3NF):属性不依赖于其他非主属性。(首先满足第二范式,再者一个数据库表中不包含已在其他表中包含的非主关键字信息。)


二.SQl 环境

通常,我们可以把运行在某个设备上的数据库管理系统看作是SQL环境。SQL环境提供了SQL得以实现的结构。在该结构中,可以使用SQL语句定义数据库对象,并且可以在这些对象中存储数据。例如,我们常见的数据库元素,如数据表、视图、存储过程、规则等,都是在SQL环境中定义的。

简单地说,SQL环境的定义就是组成该环境的所有部分的总和。每个性质不同的部分(组件)与其他组件协同工作,以支持SQL操作并提供操作应用平台。这些组件加起来就构成了一个模型,所有的关系数据库管理系统都是以该模型为基础,它们在很大程度上决定了SQL环境中各组件的结构、属性以及实现方式等。




三.学习小结

通过这次学习数据库的知识,感觉很好的感觉,无论是在知识的学习上,还是在实践中,对于数据库的操作,自己都是熟练了很多,也鉴于这次的SQL学习,为自己今后的学习带来实际性的帮助。SQL的学习中,最大的感受就是,夺取实践的操作数据,才能更好地去理解这个实体亦或者是语言。







版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章