开发者社区> 吴士龙> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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的学习中,最大的感受就是,夺取实践的操作数据,才能更好地去理解这个实体亦或者是语言。







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

相关文章
求职指南!给数据开发的SQL面试准备路径!⛵
大量的数据科学职位需要精通 SQL,它也是数据分析师、数据科学家、数据建模岗最常考核的面试技能。在本篇内容中 ShowMeAI 将梳理汇总所有面试 SQL 问题,按照不同的主题构建练习专项块。
0 0
hive统计每日的活跃用户和新用户sql开发(附shell脚本)
hive统计每日的活跃用户和新用户sql开发(附shell脚本)
0 0
开发限制—SQL概述
本文简单介绍了PolarDB-X语法及操作。
0 0
【SSM直击大厂】第十四章:MyBatis 代理开发和动态SQL
📋📋 精彩摘要:MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。
0 0
DataWorks开发ODPS SQL开发生产环境自动补全ProjectName
DataWorks标准模式下,支持开发环境和生产环境隔离,开发环境和生产环境的数据库表命名有所区别,如果需要在开发环境访问生产环境的数据库表或者跨项目空间访问其他项目空间的表,需要根据projectA.tablename命名规范严格区分数据库表名,避免误操作生产环境。 开发环境SQL任务中需要使用【开发环境空间.表名】来使用表,发布到生产环境时,需要手动把开发环境空间改成生产环境空间名称才能发布。本文针对此类场景实现在DataWorks能够自动识别任务在开发环境使用开发环境的名称,在生产环境使用生产环境的名称。
0 0
经典SQL语句大全之数据开发(二)
经典SQL语句大全之数据开发(二)
0 0
经典SQL语句大全之数据开发(一)
经典SQL语句大全之数据开发(一)
0 0
2022 开发岗 SQL 和 NoSQL 数据库选择指南
本文将通过对比 MySQL 与 MongoDB 的一些性能和特点,来简单刨析结构化数据库与文档性数据库,从而给大家以后在生产环境中数据存储介质的选择提供一些参考。
0 0
+关注
吴士龙
当时机不成熟的时候,把自己的厚度积累起来;当有一天时机来临的时候,你就能奔腾如海,成就自己的生命。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
小米的混合开发框架实战
立即下载
阿里云流计算 Flink SQL 核心功能解密
立即下载
Serverless 赋能前端应用开发
立即下载