当前位置: 首页 > news >正文

北京门户网站开发/深圳网站优化公司

北京门户网站开发,深圳网站优化公司,杭州网站建设是什么,平面设计培训班大概多少钱程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。如…

程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。

而如何定义数据的存储格式就是一个大问题。如果我们自己来定义存储格式,比如保存一个班级所有学生的成绩单:

名字成绩
Michael99
Bob85
Bart59
Lisa87

你可以用一个文本文件保存,一行保存一个学生,用,隔开:

Michael,99
Bob,85
Bart,59
Lisa,87

你还可以用JSON格式保存,也是文本文件:

[{"name":"Michael","score":99},{"name":"Bob","score":85},{"name":"Bart","score":59},{"name":"Lisa","score":87}
]

你还可以定义各种保存格式,但是问题来了:

存储和读取需要自己实现,JSON还是标准,自己定义的格式就各式各样了;

不能做快速查询,只有把数据全部读到内存中才能自己遍历,但有时候数据的大小远远超过了内存(比如蓝光电影,40GB的数据),根本无法全部读入内存。

为了便于程序保存和读取数据,而且,能直接通过条件快速查询到指定的数据,就出现了数据库(Database)这种专门用于集中存储和查询的软件。

数据库软件诞生的历史非常久远,早在1950年数据库就诞生了。经历了网状数据库,层次数据库,我们现在广泛使用的关系数据库是20世纪70年代基于关系模型的基础上诞生的。

关系模型有一套复杂的数学理论,但是从概念上是十分容易理解的。举个学校的例子:

假设某个XX省YY市ZZ县第一实验小学有3个年级,要表示出这3个年级,可以在Excel中用一个表格画出来:

grade

每个年级又有若干个班级,要把所有班级表示出来,可以在Excel中再画一个表格:

class

这两个表格有个映射关系,就是根据Grade_ID可以在班级表中查找到对应的所有班级:

grade-classes

也就是Grade表的每一行对应Class表的多行,在关系数据库中,这种基于表(Table)的一对多的关系就是关系数据库的基础。

根据某个年级的ID就可以查找所有班级的行,这种查询语句在关系数据库中称为SQL语句,可以写成:

SELECT * FROM classes WHERE grade_id = '1';

结果也是一个表:

---------+----------+----------
grade_id | class_id | name
---------+----------+----------
1        | 11       | 一年级一班
---------+----------+----------
1        | 12       | 一年级二班
---------+----------+----------
1        | 13       | 一年级三班
---------+----------+----------

类似的,Class表的一行记录又可以关联到Student表的多行记录:

class-students

由于本教程不涉及到关系数据库的详细内容,如果你想从零学习关系数据库和基本的SQL语句,推荐Coursera课程:

英文:https://www.coursera.org/course/db

中文:http://c.open.163.com/coursera/courseIntro.htm?cid=12

NoSQL

你也许还听说过NoSQL数据库,很多NoSQL宣传其速度和规模远远超过关系数据库,所以很多同学觉得有了NoSQL是否就不需要SQL了呢?千万不要被他们忽悠了,连SQL都不明白怎么可能搞明白NoSQL呢?

数据库类别

既然我们要使用关系数据库,就必须选择一个关系数据库。目前广泛使用的关系数据库也就这么几种:

付费的商用数据库:

  • Oracle,典型的高富帅;

  • SQL Server,微软自家产品,Windows定制专款;

  • DB2,IBM的产品,听起来挺高端;

  • Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨淡。

这些数据库都是不开源而且付费的,最大的好处是花了钱出了问题可以找厂家解决,不过在Web的世界里,常常需要部署成千上万的数据库服务器,当然不能把大把大把的银子扔给厂家,所以,无论是Google、Facebook,还是国内的BAT,无一例外都选择了免费的开源数据库:

  • MySQL,大家都在用,一般错不了;

  • PostgreSQL,学术气息有点重,其实挺不错,但知名度没有MySQL高;

  • sqlite,嵌入式数据库,适合桌面和移动应用。

作为Python开发工程师,选择哪个免费数据库呢?当然是MySQL。因为MySQL普及率最高,出了错,可以很容易找到解决方法。而且,围绕MySQL有一大堆监控和运维的工具,安装和使用很方便。

http://www.lbrq.cn/news/1326079.html

相关文章:

  • 个人建站程序/优化大师官方
  • 网站怎么做付款平台/东莞关键词seo
  • 大型行业网站/seo建站网络公司
  • 建设一个网站预算/站长工具高清吗
  • 网站建设登录注册怎么做/seo网站推广推荐
  • 个人做网站需要多少钱/抖音排名优化
  • 澧县网站建设/厦门头条今日新闻
  • 网站怎么做内部链接/网站建设详细方案
  • 网站建设 英文/潍坊快速网站排名
  • 万网影/快手seo关键词优化
  • 凤楼网站怎么做的/营销页面设计
  • 建站平台哪个最好/驻马店百度seo
  • 重庆市建设工程管理协会网站/天津做优化好的公司
  • 劳动保障局瓯海劳务市场和做网站/seo做的比较牛的公司
  • php网站空间支持/志鸿优化设计官网
  • 成都网站建设116web/免费友情链接网页
  • 网站美食建设图片/网络营销推广外包平台
  • 保定网站seo服务/每天4元代发广告
  • wordpress 内部标签/网站seo推广营销
  • 做网站开发的步骤/搜狗网页版
  • 药品加工厂做网站/南宁seo专员
  • 网站建设服务费/百度关键字优化价格
  • 陕西哪些公司做企业网站/百度推广开户流程
  • 如何建设网站的外链/百度推广运营
  • 网站怎么做cp备案号/建站模板哪个好
  • 深圳做网站在去那备案/谷歌seo价格
  • 腾讯云企业官网建设/泰安seo网络公司
  • 营销网络图/杭州谷歌seo公司
  • 怎么做bs网站/交换神器
  • 做网站要签合同吗/新东方英语培训机构官网
  • 数字化生产管理系统设计
  • Leetcode 10 java
  • python文件操作:读取文件内容read
  • OpenGL 坐标变换
  • LeetCode 85:最大矩形
  • 可计算存储(Computational Storage)与DPU(Data Processing Unit)的技术特点对比及实际应用场景分析